第1个回答 2012-03-10
#include <stdio.h>
void main()
{int i=0,num=0;
char str[100],c;
gets(str); /* 1 */
do{while((c=str[i])=='')i++;/* 2 */
if(c!='\0')num++;/* 3 */
while((c=str[i])!=''&&c!='\0')i++;} /* 4 */
while(c!='\0'); /* 5 */
/* 也就是第2~5个语句循环执行直到c不等于空字符为止。 */
printf("number of word :%d", num); /* 6 */
}
好像这个程序有错误
第2个回答 2012-03-10
你是只计算单词,还是计算这个字符的整体长度?
#include<stdio.h>
void main()
{
int i=0,num=0;
char str[100],c;
gets(str);
do{
while((c=str[i])==' ')i++;
if(c!='\0')i++;
while((c=str[i])!=' '&&c!='\0')i++;
}while(c!='\0');
printf("number of word :%d",i);
}
写c语言要注意格式清晰,上面这个是计算所有字符的。从do开始进入进入while,在while中判断是否是空格,是就累加i,不是就结束while循环。进入if语句,判断当前是否读到字符串末尾。然后是进入while((c=str[i])!=''&&c!='\0')i++;。。。。最后一个while是控制do-while整体循环的。。。。。。。。。。其实吧统计字符用不到这么麻烦
#include<stdio.h>
void main()
{
int i=0,j=0;
char str[100];
gets(str);
while(str[j]!='\0'){i++;j++;}
printf("number of word :%d",i);
}
这样一样可以计算这个字符的长度。。。。。。。就这些吧,
第3个回答 推荐于2016-07-19
初学时要注意格式,运行过了,正确!
#include<stdio.h>
void main()
{
int i=0,num=0;
char str[100],c;
gets(str);
do
{
while((c=str[i])==' ')/*while循环的作用是把数组st[100]r中的第一个字符赋值给c。
最开始i=0,如果第i个字符是空格,执行语句i++;继续循环。当遇到字符时(也就是开始出现单词时)结束while循环,执行下一步操作*/
i++;
if(c!='\0')/*如果c的值不等于‘\0’,即不是结束符,那么num++;(计算单词的数量)*/
num++;
while((c=str[i])!=' '&&c!='\0')/*如果c不等于空格符,那么i++;直到第i个字符为空格时,结束循环。
然后再一次执行do{}while整个大循环,直到整个字符数组的中出现‘\0’,即结束符*/
i++;
}while(c!='\0');
printf("number of word :%d\n",num);
}本回答被提问者采纳