您的位置:首页 > 其它

字符串倒序 单词次序不变----

2013-10-29 10:47 330 查看
比如说:i have a dream 变成:dream a have i 

#include<stdbool.h>//布尔环境
int main(int argc,
char* argv[])
{
   
char *s=NULL;

    s="i have a dream!";
   
int n=strlen(s);
   
char temp[1000];//定义缓冲区的的大小
   
int q=n-1;
    temp
='\0'; 
//最后一个为‘\0’
   
char *p;
    p=s;
   
int i=0,t=0;
   
bool flag=true;
   
while(flag)
    {
       
if (*p==' ')
        {
            p--;
           
while(t!=0)
            {
                temp[q]=*p;
                p--;
                q--;
                t--;
            }
            temp[q]=' ';
            q--;
            i+=2;
            p+=i;
            i=0;
            t=0;
        }else
if (*p=='\0')
//如果运行到字符串的末尾
        {
            p--;
           
while(t!=0)
            {
                temp[q]=*p;
                p--;
                q--;
                t--;
            }
           
//break;
            flag=false;
        }
        p++;
        i++;
        t++;
    }
   
for(i=0;i<n;i++)
    {
       
printf("%c",temp[i]);//重新赋给字符串
    }
   
printf("\n输出结果:%s",temp);
     
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息