2016-04-03 71 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