计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
#include<stdio.h> int main(){ char ch=0 int str_len=0 while(1){ ch=getchar(); if(ch=='\n') break; else if(ch==''){ str_len=0 }else{ str_len++; } } print("%d\n",str_len) return 0 }
#include <stdio.h> #include <string.h> #define N 5000 int main() { int a, b; char str[N]; while (scanf("%s", &str) != EOF) { // 注意 while 处理多个 case a = 0; } a = strlen(str); printf("%d", a); return 0; }
#include <stdio.h> int main() { char a; int num=0; while(scanf("%c",&a)&&a!='\n'){ if(a==' '){num=0;} else {num++;} } printf("%d",num); return 0; }有没有更快的方法
#include<stdio.h> #include<string.h> int main(void) { char ch; int i, len=0; while(1){ ch=getchar(); if(ch!=' '){ len++; } else if(ch==' '){ len=0; } if(ch=='\n') break; } printf("%d",len-1); return 0; }
#include <stdio.h> #include <string.h> int main() { int LastWordLen = 0; int WordsLen; char Words[5000]; fgets(Words, 5000, stdin); // scanf("%s", Words); WordsLen = strlen(Words); // printf("%d\n", WordsLen); for (int i = 0; i < (WordsLen - 2); i++) { if (Words[WordsLen - 2 - i] != ' ') continue; else LastWordLen = i; break; } if (0 == LastWordLen) LastWordLen = WordsLen - 1; printf("%d\n", LastWordLen); return 0; }【他山之玉】
#include <stdio.h> #include <string.h> int main() { char str[1000]; int a=0,i=0; while(scanf("%s",str) != EOF) {} a=strlen(str); printf("%d",a); }1,scanf()函数,如果转换说明是%s的话,他的读取规则是,“读取除空白以外的所有字符串”。scanf()函数跳过空白开始读取第一个非空白字符,并保存非空白字符直到再次遇到空白字符。也就是说!!!!scanf()函数根据%s转换说明读取一个单词!!!
#include <stdio.h> #include <string.h> int main() { char a[5000]={0}; gets(a); int l,i=0; l=strlen(a); while(a[l-1]!=' ') { i++; l--; } printf("%d",i); return 0; }