我创建了一个程序,在其中声明了两个char类型的数组。一个会存储字符串,另一个会存储反转的字符串。但是当我打印第二个数组时,它会显示一些意外结果。

#include<stdio.h>

main(){
char a[] = "Sahib";
char b[5];
int i = 0;
int j,k = 0;
char c='a';
while(c!='\0'){
    c = a[i];
    i++;
}
i -= 2;
for(j=i;j<=0;j--){
    b[k] = a[j];
    k++;
}

printf("The reversed character is %s",b);
}

最佳答案

尝试这个:

#include <stdio.h>

int main(void){
    char a[] = "Sahib";
    char b[sizeof a];
    int i = 0;
    int j,k = 0;
    char c;

    while((c = a[i]) != '\0'){
        i++;
    }
    for(j = --i; j>=0; --j){
        b[k++] = a[j];
    }
    b[k] = '\0';

    printf("The reversed character is %s\n", b);
    return 0;
}

关于c - 打印字符串时出现意外结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37090226/

10-11 23:08
查看更多