2016-10-09 5 views
-1

ich habe:eine Reihe von 7 Zeichen lesen in C

char M[20] = "abcdabcdabcdabcd"; 

ich entweder als String oder als Zeichen drucken kann:

printf("%s\n", M); //print as string 

for(i = 0;str[i] != '\0';i++) //print as characters 
    { 
     printf("%c",str[i]); 
    } 

ich eine Reihe von 7 Zeichen lesen möchten und speichern sie in M, so dass später, wenn ich es als String drucken und als Zeichen I erhalten (vorausgesetzt, die 7 Zeichen eingegeben sind: ABCDEFG):

ABCDEFG //output of printf("%s\n", M); when printed as string 
ABCDEFG abcdabcd //output of the for loop above 

Meine Antwort ist:

for(K = 0;K<7;K++) 
{ 
    scanf(" %1c", &M[K]); 
} 

aber die oben nicht funktioniert, wie es sollte.

EDIT:

gibt sie

ABCDEFGdabcdabcd 

für beide Fälle.

+0

"* ... aber das oben funktioniert nicht so wie es sollte. *" Aber tut genau was? – alk

Antwort

-1

Sie sollten eine Aussage hinzufügen: . Das letzte Zeichen für die Zeichenfolge sollte '\ 0' sein.

+0

es hat funktioniert, danke! – user203

+0

Ich weiß nicht, warum Leute meine Frage und Ihre Antwort ablehnen. Seltsam. Ihre Antwort war sehr hilfreich. – user203

+0

Aber jemand hat gegen mich gestimmt ............ – mrsiz

Verwandte Themen