我是 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/