2016-04-03 12 views
-1

Ich möchte eine Zeichenfolge mit 15 Sonderzeichen haben, die in der Tastatur nicht verfügbar sind, aber einen ASCII-Wert haben.Zuweisen von Sonderzeichen in Zeichenfolge C

Das ASCII-Wert des Zeichens ist 205. Hier ist, was ich tun, denn es ist:

int main(){ int i; char a[15]; for(i=0;i<15;i++) a[i]=205; printf("%s",a); return 0; }

Der Ausgang ist „= s“, die nicht je nach Anforderung ist, bitte helfen Sie.

+0

ASCII-Codes sind von '0' auf '127'. '205' ist kein ASCII-Code. Und benutzen Sie keine _magic numbers_. – Olaf

+0

Diese restlichen 128 Zeichen sind erweiterte ASCII-Zeichen. –

+0

Es gibt keinen Standard "Extended ASCII"! Es gibt nur verschiedene 8-Bit-Codierungen, die absichtlich die gleichen Zeichen für die unteren 128 Codes definieren. Aber keiner von ihnen ist Teil des ASCII-Standards. Jedenfalls erzwingt der C-Standard kein ASCII und es gibt gut andere Codes, z. EBCDIC. Das häufig verwendete UTF-8 verwendet zum Beispiel eine 7-Bit-Primärcodierung. – Olaf

Antwort

1

C "Zeichenketten" sind tatsächlich "Null abgeschlossen" Char-Arrays. Sie müssen also ein weiteres Zeichen verwenden, und Sie müssen es als 0 oder '\0' festlegen.

#include <stdio.h> 

int main() 
{ 
    int i; 
    char a[16]; 
    for(i=0;i<15;i++) 
     a[i]=205; 

    a[15] = 0; 
    printf("%s\n",a); 
    return 0; 
} 

Es ist auch besser, mindestens eine neue Zeile vor dem Ende Ihres Programms zu drucken.

Meine Ausgabe:

═══════════════ 
+0

C hat keinen Zeichenkettentyp. Der 'nul'-Terminator ist eine Konvention, die in C eine 'Zeichenkette' erzeugt, also nicht '_most_ standard functions', sondern ** all **. – Olaf

Verwandte Themen