C语言单词

119 阅读1分钟

//单词 法1

#include <stdio.h> #include <ctype.h> #include <stdio.h> #include <ctype.h> void main() {
char string[100]; int i,num = 0; //防止溢出,gets对溢出不做判断,而fgets做判断。 fgets(string,sizeof(string),stdin); for (i = 0;string[ i ] != '\0';++i) if ( isalpha(string[i])&&(!isalpha(string[i + 1])) ) num++;
printf("There are %d words in the line.\n",num); }

//单词法 2

#include <stdio.h> #include <string.h>

int Find(char a[100],size_t i) { int num=0;//单词个数 size_t index=0; for (index=0;index!=i;++index) { if ((('a'<=a[index] && 'z'>=a[index]) || ('A'<=a[index] && 'Z'>=a[index])) && ('A'>a[index+1] || ('Z'<a[index+1] && a[index+1]<'a') || a[index+1]>'z')) { ++num; } }

return num;

}

int main() { char a[100]={0}; scanf("%[^\n]",a);//[ ]表示选择,^表示非

printf("%d\n",Find(a,strlen(a)));

return 0;

}

//法3

#include <stdio.h> #include <conio.h> #include <time.h> #include <stdlib.h> #include <math.h> #include <windows.h>

#include <stdio.h> #include <ctype.h> #include <string.h> int main() { char s[100]; int length = 0; int i = 0; int count = 0; FILE *fp; if((fp=fopen("E:\string.txt","rt"))==NULL)//绝对路径,不推荐

{
	
	printf("\nCannot open file press any key exit!");
	
	getchar();
	
	return 0;
	
}
printf("读入字符串的个数:");
scanf("%d",&length);
fgets(s,length,fp);
printf("\n%s\n",s);
fclose(fp);

for (i = 0; i<length; i++)
{
	if ((isalpha(s[i+1])==0)&&(isalpha(s[i])!=0))
	{
		count++;
	}
}
printf("\n单词的总个数为%d\n",count);
return 0;

}

//单词法4

#include <stdlib.h> #include <stdio.h> #include <string.h> //判断字符是否为字母

fun(char *s) { if(*s>='a'&&*s<='z'||*s>='A'&&*s<='Z') return 1; else return 0; } main( ) { char str[100],*p=str; int sum=0; printf("输入一行字符:\n"); fgets(str,100,stdin);

while(*p)
{
	if( fun(p) ) //是字母就开始计数
		sum++;
	while(  *p && fun(p) )//是字母就向后窜
		p++;
	while( *p && !fun(p) )//不是字母就向后窜
		p++;
}
printf("共有: %d 个单词\n",sum);

}