【算法】单词倒序问题
2015-03-09 03:19:08 -0400
题目:输入一句英文句子,把句子里每个单词里的字母倒序。单词在句子中的位置不变。
实现方法如下:
#include <stdio.h>
#include <string.h>
char *getWordRoll(char *);
int main(void)
{
char str[] = "I am luo ye si qiu!";
printf(getWordRoll(str));
return 0;
}
char *getWordRoll(char *str)
{
char temp;
// start和end表示单词的开始和末尾
int start = 0, end = 0;
char* newStr;
char t;
for (int k = 0; k <= strlen(str); k++)
{
t = *(str + k);
if (t < 'a' || t > 'z')
{
start = end;
end = k;
//str表示字符串的首地址
newStr=str+start;
for (int i = 0; i <(end - start) / 2; i++)
{
temp = *(newStr + i);
*(newStr + i) = *(newStr + (end - start) - 1 - i);
*(newStr + (end - start) - 1 - i) = temp;
}
end++;
}
}
return str;
}
算法原创,如果发现错误,欢迎指出。
----Comments(1)----
【飛龍在天】 (@891622172) |
@ at 2015-03-09 04:10:
还是不懂。。。
我还是路过吧!
Back to home
Subscribe |
Register |
Login
| N