2016-05-07 1 views
-3

Я создал программу, в которой я объявил два массива типа 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); 
} 
+0

C строки нулем ... Вам нужно 1) предоставить пространство для него в принимающей переменной и 2) вы должны добавить его в строку самостоятельно. – fvu

+0

try 'char b [sizeof (a)] = {0}', это помогает оттолкнуть. – milevyo

+0

Я добавил ... все же он не отображает ничего вместо b. –

ответ

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; 
} 
+0

Это ничего не отображает .... вместо b –

+0

@SahibNavlani [DEMO] (http://ideone.com/AnbE5u) – BLUEPIXY