gpt4 book ai didi

c - 尝试反转字符串会导致空字符串

转载 作者:行者123 更新时间:2023-12-02 01:48:26 28 4
gpt4 key购买 nike

我是 C 新手,我正在尝试执行一些函数来反转单词,这里是我的代码:

#include <stdlib.h>
#include <string.h>

// ƒ to revers the word
void lettreCount(char *saisi, int length){
int i, j = 0;
char revers[length];

for (i = length; i >= 0; --i){ //loop
*(revers+j) = saisi[i];
++j;
}
printf("%s\n",revers);
}


int main(){
char text[30]; //Array for text
int len;

printf("Saisissez le text:\n");
gets(text);

len = strlen(text);

lettreCount(text, len);

}

但是我在终端中一直得到一个空字符串,我应该怎么做?谢谢

最佳答案

C 中的字符串以空字节终止。因此,当您使用 i = length 开始循环时,放入新数组中的第一个字符是空字节。这意味着您有一个空字符串。

从索引 length-1 处开始循环,以便从字符串的最后一个字符开始。然后在循环之后,您需要手动将终止空字节添加到目标数组。

char revers[length+1];
for (i = length-1; i >= 0; --i){ //loop
*(revers+j) = saisi[i];
++j;
}
revers[length] = 0;

关于c - 尝试反转字符串会导致空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70633899/

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