问题
单项选择题
若有定义:char *st="how are you";下列程序段中正确的是( )。
A.char a[11], *p; strcpy(p=a+1,&st[4]);
B.char a[11]; strcpy(++a, s;
C.char a[11]; strcpy(a, s;
D.char a[], *p; strcpy(p=&a[1],st+2);
答案
参考答案:A
解析: C语言不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组,例如,已定义字符数组str1和str2,那么str1="China"和str1=str2都是错误的。通常使用strcpy函数进行字符串的赋值,例如:strcpy(str1,"China")或strcpy(str1,str2)。 需要注意的是,字符数组str1的长度不应小于字符串“China”或字符数组str2的长度,函数 strcpy的第一个参数必须用数组名的形式,如str1,第二个参数可以是字符数组名,也可以是字符串常量。