打印字符串时出现意外结果

时间:2016-05-07 15:19:16

标签: c arrays string

我创建了一个程序,其中我声明了两个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);
}

1 个答案:

答案 0 :(得分:0)

试试这个:

#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;
}