C语言输入字符串求有几个单词各位大佬帮忙看看哪里出错了总少一个
程序代码:
#include"stdio.h" #define N 100 main() { char a[N]; int i,um=0; gets(a); while(ch!'\n') {for(i=0;i<=N;i++) if(a[i]!=' '&&a[i+1]==' '||a[i]!=' '&&a[i+1]=='\n') {um++;} printf("um=%d",um);} }
#include <stdio.h> #include <stdbool.h> int main( void ) { size_t count = 0; bool flag = false; // 记录 前一个字符 是否为单词组成 for( char buf[81]; fgets(buf,sizeof(buf),stdin); ) // 这个缓冲区大小81可改为任意大于1的值 { for( const char* p=buf; *p!='\0'; ++p ) { if( *p=='\n' ) { printf( "%zu\n", count ); return 0; } if( *p=='\t' || *p==' ' ) { flag = false; } else { count += !flag; flag = true; } } } return 0; }
#include <stdio.h> int main( void ) { size_t count = 0; for( ; ; ) { scanf( "%*[\t ]" ); int ch = getchar(); if( ch == '\n' ) break; ungetc( ch, stdin ); scanf( "%*s" ); ++count; } printf( "x = %zu\n", count ); }