1.编写程序,从键盘上输入一个字符串(少于80个字符),对字符串中的内容以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍存放在字符数组xx中。
例如:原文:You He,Me,则结果:Me He You
**【思考】对其中单词进行排序,程序怎样修改?
#include<stdio.h>
#include<ctype.h>
#include<string.h>
int main()
{
char xx[80];
int j,k,s,m,strl;
char str[80];
printf("请输入一个少于80个字符的字符串:");
gets(xx);
strl=strlen(xx);
s=k=0;
for(j=strl-1;j>=-1;j--)
{
if(isalpha(xx[j]))
k++;
else
{
for(m=1;m<=k;m++)
str[s++]=xx[j+m];
k=0;
}
if(!isalpha(xx[j]))
str[s++]=' ';
}
str[s]='\0';
strcpy(xx,str);
printf("结果:%s\n",xx);
return 0;
}
#include<stdio.h>
#include<ctype.h>//字符分类函数头文件
#include<string.h>
int main()
{
char xx[80];
int j,k,s,m,strl;
char str[80];
printf("请输入一个少于80个字符的字符串:");
gets(xx);
strl=strlen(xx);//把xx实际长度赋值给strl
s=k=0;
for(j=strl-1;j>=-1;j--)//输题,strl=11;
{
if(isalpha(xx[j]))//isalpha是否为字母
k++;
else
{
for(m=1;m<=k;m++)
str[s++]=xx[j+m];//把xx的结果赋值给str;
k=0;
}
if(!isalpha(xx[j]))
str[s++]=' ';//去除标点符号
}
str[s]='\0';//令最后一个字符为零字符
strcpy(xx,str);//str复制给xx
printf("结果:%s\n",xx);
return 0;
}
2.