// 翻转字符串的辅助函数
void reverseString(char* str, int start, int end) {
while (start < end) {
char temp = str[start];
str[start] = str[end];
str[end] = temp;
start++;
end--;
}
}
// 主函数,翻转句子中的单词
void reverseSentence(char* str) {
if (str == nullptr) return;
int len = 0;
while (str[len] != '\0') len++; // 计算字符串长度
// 1. 翻转整个字符串
reverseString(str, 0, len - 1);
// 2. 翻转每个单词 I am a worker
int start = 0;//rekrow a ma i
for (int i = 0; i <= len; i++)
{
if (str[i] == ' ' || str[i] == '\0')
{ // 遇到空格或字符串结束符
reverseString(str, start, i - 1); // 翻转单词
start = i + 1; // 更新下一个单词的起始位置
}
}
}
int main()
{
char str[] = "I am a worker";
std::cout << "Original: " << str << std::endl;
reverseSentence(str);
std::cout << "Reversed: " << str << std::endl;
}
写一个函数,将字符串翻转,翻转方式如下:“I am a student”翻转成“student a am I”,不借助任何库函数
最新推荐文章于 2025-09-24 15:40:57 发布
8561

被折叠的 条评论
为什么被折叠?



