Eg:Good Wishes
A:
#include <stdio.h>#include <string.h>#define SIZE 20int main()
{ char str[SIZE]={'\0'} int count=0
printf("plz input the string\n")
gets(str)
puts(str) int length = strlen(str) for (int i=0i<lengthi++)
{
if(str[i]!=' ')
{ count++ while(str[i]!=' '&&str[i]!='\0')
{
i++
}
}
}
printf("%d\n",count) return 0
}
‘\0’和‘0’的区别:
在c语言中,它们都是字符,都用对应的ASCII码来存储。例如第一个ASCII码,0,对应字符为(Null),就是 ‘\0’,即空字符。我们在c语言中判断一个字符串是否结束的标志就是看是否遇到‘\0’,如果遇到‘\0’,则表示字符串结束。字符‘0’和数字0的区别:前者是字符常量,后者是整形常量,但是字符常量可以像整数一样在程序中参与相关运算。
扩展资料字符串所有字符,如果当前字符不为空,单词数+1,再嵌套一个while循环,判断当前单词是否结束。
#include <stdio.h>
#include <string.h>
int count_words(char* s)
{
int len=strlen(s)
int count,i
for(i=0i<leni++)
{
if(*(s+i)!=' '){ // 如果当前代码不为空
count++ //单词数+1
while(*(s+i)!=' '&&i<len) //判断当前单词是否结束
i++
}
}
return count
}
int main()
{
char* a="i love you"
printf("%d",count_words(a))
}
给一个简单的例子:#include<stdio.h>#define N 1000void main(){ char en[N][81] int i,j,num=0,n,state //num 用来统计单词的个数 //state 用来记录程序当前是否处于一个单词之中,初值为0,表示不在单词中,值为1,表示正处于在一个单词中
FILE *fp
fp = fopen("in.txt", "r")
int n =0
while(!feof(fp)){fgets(en[n++], N, fp) //输入英语短文 } for(i=0i<ni++){state=0//设每行的开始都是单词的开始for(j=0en[i][j]!='\0'j++){ if(en[i][j]==' '){state=0 //判断 en[i][j] 是否为空格字符 } else if(state==0){state=1 num++ }} } printf("The number of words is %d\n",num)}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)