您的位置:首页 > 其它

c 语言 从字符串中取出一串单词并倒序

2017-11-30 12:50 197 查看
本代码为本人初学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
= a[m];
            for(m=i,n=0;m<j;m++,n++)
            a[m] = b
;
            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;
}


该代码经过调整还可用于判断字符串中的单词是否为回文数;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐