//由键盘输入一行仅由英文字母及空格组成的字符,编程实现(相邻单词之间用一个空格或多个空格隔开)
//1输出每个单词及其长度
//2输出最长的单词
//例如
//输入: I am a boy
//输出: I 1
// am 2
// a 1
// boy 3
// The longest word is:boy
#include "stdio.h"
int main()
{
int i=0;//单词个数
int m=0;//每个单词的字母个数
int j=0;//字符串位数
char buff[512];//字符串
char a[100];//放每个单词的内容
int longest=0;
//1输出每个单词及其长度
//2输出最长的单词
//例如
//输入: I am a boy
//输出: I 1
// am 2
// a 1
// boy 3
// The longest word is:boy
#include "stdio.h"
int main()
{
int i=0;//单词个数
int m=0;//每个单词的字母个数
int j=0;//字符串位数
char buff[512];//字符串
char a[100];//放每个单词的内容
int longest=0;
//输入字符串
//scanf("%s",buff); 输入i am a girl 不可以用这个 因为scanf输入字符串时以第一个空白字符结束
gets(buff);
//scanf("%s",buff); 输入i am a girl 不可以用这个 因为scanf输入字符串时以第一个空白字符结束
gets(buff);
while(buff[i]!='\0')
{
a[m]=buff[i];
m++;
if(buff[i]==' ')//一个单词
{
a[m]='\0';//给单词最后加一个结束符
j++;
printf("%d ",m-1);
if(longest<m-1)
longest=m-1;
puts(a);
m=0;
}
i++;
}
a[m]='\0';//最后一个单词
printf("%d ",m);
if(longest<m)
longest=m;
puts(a);
printf("单词有:%d个\n",j+1);
printf("单词最长为:%d个\n",longest);
return 0;
}
//cannot open Debug/3.exe for writing 错误出现 ctrl+alt+delete任务管理器关闭vc 再重新打开即可
{
a[m]=buff[i];
m++;
if(buff[i]==' ')//一个单词
{
a[m]='\0';//给单词最后加一个结束符
j++;
printf("%d ",m-1);
if(longest<m-1)
longest=m-1;
puts(a);
m=0;
}
i++;
}
a[m]='\0';//最后一个单词
printf("%d ",m);
if(longest<m)
longest=m;
puts(a);
printf("单词有:%d个\n",j+1);
printf("单词最长为:%d个\n",longest);
return 0;
}
//cannot open Debug/3.exe for writing 错误出现 ctrl+alt+delete任务管理器关闭vc 再重新打开即可
/*补充
getchar输入单个字符 putchar输出单个字符 而且\n也会被当成字符
如果输入abcd
输出acd
可以这样写:
#include "stdio.h"
int main()
{
char m1,m2,m3;
m1=getchar();
getchar();
m2=getchar();
m3=getchar();
putchar(m1);
putchar(m2);
putchar(m3);
return 0;
}*/