gpt4 book ai didi

c - 为什么我的反向函数在 C 中不起作用?

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

void str_reverse(char *l, char *r){
char *start = l; //gives while loop place to stop, the start of the string
while (*l != '\0'){
*l++;
} //loops the to the end terminator

*l--; //last character

while (*l != *start){
*r = *l;
*l--;
*r++;
} // adds the string from back to front to new string

*r = '\0';
}

有人能告诉我当我打印出 *r 时,为什么我缺少第一个字符吗?例如,你好反过来是olle?谢谢

最佳答案

错误在于使用解引用递增指针,如 *l++,并根据指针指向的值比较指针。固定代码如下所示:

void str_reverse(char *l, char *r){

char *start = l; //gives while loop place to stop, the start of the string
while (*l != '\0'){
l++;
} //loops the to the end terminator

l--; //last character

while (l >= start){
*r = *l;
l--;
r++;
} // adds the string from back to front to new string

*r = '\0';

}

关于c - 为什么我的反向函数在 C 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26977169/

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