//字符串中各单词的翻转
void reverseStr1(char* src)
{
char* start = src, *end = src, *ptr = src;
while (*ptr++ != '\0')
{
if (*ptr == ' ' || *ptr == '\0') //找到一个单词
{
end = ptr - 1; //end指向单词的结尾
while (start < end)
{
swap(*start++,*end--);
}
start = end = ptr + 1;
}
}
printf("字符串为: %s\n", src);
start = src, end = ptr - 2; //start 指向字符串的开头 end指向字符串最后一个单词
while (start < end)
{
swap(*start++,*end--); //把整个字符串逆置
}
}
void reverseStr2(char* src)
{
char* start = src, *end = src, *ptr = src;
while (*ptr++ != '\0');
end = ptr - 2;
while (start < end)
{
swap(*start++, *end--);
}
start = src, end = ptr - 2;
ptr = start;
while (*ptr++ != '\0')
{
if (*ptr == ' ' || *ptr == '\0')
{
end = ptr - 1;
while (start < end)
swap(*start++,*end--);
start = end = ptr + 1;
}
}
}
int main()
{
char strSrc[] = "Hello world!";
reverseStr2(strSrc);
printf("字符串为: %s\n", strSrc);
system("pause");
return 0;
}
C编程实现字符串中各单词的翻转
猜你喜欢
转载自blog.csdn.net/lpl312905509/article/details/104079706
今日推荐
周排行