c 语言 从字符串中取出一串单词并倒序
程序员文章站
2022-05-29 12:17:21
...
本代码为本人初学C语言时遇到的一个问题;
具体问题为 :字符串中间的单词无法转到对应位置的空字符串中,所以为了提取字符串中的单词本人思考了如下代码:
# include <stdio.h>
# include <string.h>
int main()
{
char a[20]={'h','e','l','l','o',' ','w','o','r','l','d'},b[150];
int m,n,i=6,j=11,k,p=j-i-1;
for(m=j-1,n=0;m>=i;m--,n++)
b[n] = a[m];
for(m=i,n=0;m<j;m++,n++)
a[m] = b[n];
printf("%s\n",a);
return 0;
}
这是把”hello world“中的”world“倒叙的一个小程序;
如果需要倒叙一个字符串中所有的单词并保持原位还应做如下改动:
# include <stdio.h>
# include<ctype.h>
# include <string.h>
int main()
{
char a[600],b[600];int m,n,i,j,k;
while(gets(a)!=NULL)
{
n = strlen(a);
for(i=0;i<n;i++)
{
j = i;
while(isgraph(a[j]))
j++;
if(j>i)
{
for(k=j-1,m=0;k>=0;k--,m++)
b[m] = a[k];
for(m=0,k=i+m;m<j-i;k++,m++)
a[k] = b[m];
memset(b,0,600);
i = j-1;
}
}
puts(a);
}
return 0;
}
该代码经过调整还可用于判断字符串中的单词是否为回文数;
上一篇: MySQL触发器的创建与删除_MySQL
推荐阅读