2016-04-03 72 views
-1

我希望有一個字符串保存15個特殊字符,這些字符在鍵盤中不可用,但具有ASCII值。在字符串C中分配特殊字符

字符的ASCII值是205 這是我一個做的是:

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

輸出爲「= S」,這是不按規定,請幫助。

+0

ASCII碼是從'0'到'127'。 '205'不是ASCII碼。並且不要使用_magic numbers_。 – Olaf

+0

其餘的128個字符是擴展ASCII字符。 –

+0

沒有標準的「擴展ASCII」!只有各種8位編碼有意爲低128位代碼定義相同的字符。但是它們都不是ASCII標準的一部分。無論如何,C標準不強制執行A​​SCII,並且還有其他的編碼,例如, EBCDIC。例如,常用的UTF-8也使用7位主編碼。 – Olaf

回答

1

C「字符串」實際上是「空終止」字符數組。 因此,您需要使用一個字符,並且您需要將其設置爲0'\0'

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

此外,最好在您的程序結束前至少打印一個新行。

我的輸出:

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

C沒有字符串類型。 'nul'終止符是一個約定,它在C中產生一個'字符串',所以它不是「_most_標準函數」,而是全部**。 – Olaf