2017-11-08 13 views
0

私はこれをしようとしましたが、正しい方法を見つけることができません。私はこれを持っています:1文字をstrlen = 1のchar *に変換するにはどうすればよいですか?

#include <string.h> 
#include <stdio.h> 

int main(){ 
    char a = 'a'; 
    char b[1] = " "; 
    strcat(b,a); 
    printf ("%s",b); 
    return 0; 
} 

私はそれが間違っていることを知っています。 'a'"a"にするためにこのコードを修正するにはどうすればよいですか?

+0

https://en.wikipedia.org/wiki/C_string_handling – Stargateur

+1

strcatを使用すると、新しい文字列の末尾に '\ 0 'が追加された場合、' char b [2] ' –

+1

' char b [1 ] = ""; strcat(b、a); ' - >' char b [3] = ""; strncat(b、&a, 1); 'または' char b [2] = ""; strncat(b、&a, 1); ' – BLUEPIXY

答えて

3
#include <string.h> 
#include <stdio.h> 

int main(){ 
    char a = 'a'; 
    char b[2] = " "; 
    b[0] = a; 
    printf ("%s",b); 
    return 0; 
} 

C文字列は文字の配列だけです - あなたは、その文字列内の個々の文字を設定したい場合、あなたはとても正確にあなたが他の配列と同じように行うことができます。

あなたが逃したことの1つは、C文字列が保存したい文字数より1長くなければならないことです。つまり、終端文字を格納するには\0です。

関連する問題