gpt4 book ai didi

c++ - 颠倒句子的单词?

转载 作者:太空宇宙 更新时间:2023-11-04 05:46:06 26 4
gpt4 key购买 nike

我不明白我做错了什么。看起来这应该有效:

调用reverse_reverse("这房子是蓝色的");应该先打印出“this house is blue”,然后是“blue is house this”..

void reverse_reverse(char * str) {
char temp;

size_t len = strlen(str) - 1;
size_t i;
size_t k = len;

for(i = 0; i < len; i++) {
temp = str[k];
str[k] = str[i];
str[i] = temp;
k--;

if(k == (len / 2)) {
break;
}
}

cout << str << endl;

i = 0;
for(k = 0; k < len; k++) {
if(str[k] == ' ') {
size_t a = k;
for(size_t b = i; b < k; b++) {
temp = str[b];
str[b] = str[a];
str[a] = temp;
a--;

if(a == (((k - i) / 2) + i)) {
break;
}
}
}
i = k + 1;
}

cout << str << endl;
}

最佳答案

你有

i = k+1

然后是for循环

for(size_t b = i; b < k; b++)

这永远不会进入 i > k在循环开始之前,因此 b > k .

也许您打算在 if block 中包含该行:

if (str[k] == ' ') {  
...

i = k+1; // <----- Here
}
// i = k+1; // Instead of here.

我认为这也行不通,但会让您更接近您想要的。

关于c++ - 颠倒句子的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4929789/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com