【发布时间】:2013-03-13 16:21:40
【问题描述】:
我可以反转一个字符串。例如,我可以将“reverse a string”反转为“esrever a gnirts”。但是我不能像“string a reverse”这样逐字地反转它。
void reverseString(char string[],char *start, char* end)
{
char tmp; //temporary variable to swap values
int count = 0;
while(start<end)
{
if(*start==' ')
{
printf("found space count %d \n",count);
reverseString(string,start-count,start);
}
tmp = *start;
*start = *end;
*end = tmp;
*start++;
*end--;
count++;
}
printf(" string %s \n", string);
}
int main()
{
char string[] = "reverse a string word by word";
char *start =string;
char *end =start+ strlen(string) -1;
reverseString(string,start,end);
return 0;
}
【问题讨论】:
-
这在现场很难。保持简单,只需创建一个新字符串,然后将每个单词附加到该字符串,然后用新值替换原始字符串。