姜逸磊老公老胡:一个C++字符串逆转程序<在线等>

来源:百度文库 编辑:高校问答 时间:2024/05/02 19:31:24
逆转字符串,以单词为单位
如"i am a student"逆转为"student a am i"?

很简单的一个东西
在线等~
三楼的大哥,谢谢你的代码~
但是我认为照你这样写打不到按照单词逆转的要求啊~
题目要求是以单词为单位逆转~
还请大哥再帮忙想想~

void convert(char *str)
{

int i,j,n;
n=strlen(string)-1;
char str1[n+1]

for(i=n;i<=0;i--)
{
if(str[i]=="" || i==0)
{
for(j=strlen(str1),j<n-i,j++)
{
str1[j]=str[i]
}
}
}
printf("%s",str1)
}
这段代码我没有行运过,好久没有写c程序了!
道理是这样子的!
也许数组索引会算错!
你也好好调试下!
str1最后要加一个“\0”。

(printf)
"student a am i"

#include <string.h>

/*将字符串倒置*/
void convert(char *str)
{
int i,n;
char tmp;
n=strlen(string)-1;
for(i=0;i<n;i++,n--)
{
tmp=str[n];
str[n]=str[i];
str[i]=tmp;
}
}

这么试试看~:

#include <stdio.h>

void Convert(char *p)
{
char * t =p;
if('\0'==*t)return;
while('\0'!=*t)
{
if(' '==*t)break;
t++;
}
if(' '==*t)Convert(++t);
while(' '!=*p&&'\0'!=*p)printf("%c",*(p++));
printf(" ");
return;
}

void main()
{
char s[]="My sheep is black",*p=s;
Convert(p);
}

BTW:
由于我在实现里面使用了形参递增,所以注意调用的时候不能传数组名,需要用指针替代,如:
char s[]="My sheep is black",*p=s;
Convert(s);//错误
Convert(p);//正确