程序填空:实现利用指针s1和s2分别指向的字符串中大写字母个数的差值,例如s1指向的字符串为”No.12C”有2个大写字母,s2指向字符串为”FAST2m”有4个大写字母,则输出结果为-2。

#include <stdio.h>

int main()

{ int n1=0,n2=0;

char a[64],b[64],*s1=a, ;

printf("Please input string a:");

gets(a);

printf("Please input string b:");

gets(b);

for( ;*s1;s1++)

  if(*s1>='A'&&*s1<='Z')

for( ;*s2;s2++)

  if(                                  )

    n2++;

printf("Difference:%d",n1-n2);

return 0;

}


第一个位置,填入*s2=b, 即让字符指针s2指向字符数组b;

第二个位置,填入n1++, 即当前字符指针s1指向的字符为大写字母时,s1指向的字符串中的大写字母个数+1;

第三个位置,填入*s2>='A'&&*s2<='Z' ,即判断当字符指针s2当前指向的字符是否为大写字母;

修改如下:


#include <stdio.h>

int main()

{ int n1=0,n2=0;

char a[64],b[64],*s1=a,*s2=b ; //让字符指针s2指向字符数组b;

printf("Please input string a:");

gets(a);

printf("Please input string b:");

gets(b);

for( ;*s1;s1++)

  if(*s1>='A'&&*s1<='Z')
     n1++; //当前字符指针s1指向的字符数组a此位置为大写字母时,s1指向的字符串大写字母个数+1
                        
for( ;*s2;s2++)

  if(   *s2>='A'&&*s2<='Z') //判断当字符指针s2当前指向的字符是否为大写字母

    n2++;
printf("Difference:%d",n1-n2);

return 0;

}

img


第一处
n1++;
第二处
*s2 >= 'a' && *s2 <= 'z'

???