欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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;
}

该代码经过调整还可用于判断字符串中的单词是否为回文数;