函数中的z没有初始化为0
题目要求单词之间使用空格分隔开,所以只能,使用gets函数接纳字符,因为scanf会依据空格将输入的字符分隔开,得不到整个字符
#include <stdio.h>
#include <string.h>
#define max 100
int main(){
char s[max]; //接受字符串
int sum,i=0,n=0,j,a[max],flag=0;//使用a[max]记录每个单词的首字母,flag用个数来记录缩写 ,sum记录单词总个数
printf("请输入一句英语:");
gets(s);
while(s[i]!='\0'){
if(s[i]!=' '){
if((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z'))
a[n++] = i; // 记录每个单词首字母位置
while(s[i]!=' '){
//判别左上角逗号 if(s[i] == 39) flag++;
if(s[i] =='\'') flag++;//判别左上角逗号,还可以使用转义字符
i++;
}
}
else i++;
}
sum = flag+n;
printf("共有%d个单词\n",sum);
for(i=0;i<n;i++)
//将每个单词的首字母变为大写
if(s[a[i]]>='a'&&s[a[i]]<='z') s[a[i]] = s[a[i]] - 32;
puts(s);
return 0;
}