这当然不行啊,char *a[11]表示定义了11个字符型指针,每个指针还没有指向有存储空间的内存地址。
如果想要能运行需要申请内存加上
a[0]=(char*)malloc(100)
在C语言中,有两个函数可以在控制台(显示器)上输出字符串,它们分别是:
puts():输出字符串并自动换行,该函数只能输出字符串。
printf():通过格式控制符%s输出字符串,不能自动换行。除了字符串,printf() 还能输出其他类型的数据。
这两个函数相信大家已经非常熟悉了,这里不妨再演示一下,请看下面的代码:
#include <stdio.h>
int main(){
char str[] = "http://c.biancheng.net"
printf("%s\n", str) //通过字符串名字输出
printf("%s\n", "http://c.biancheng.net") //直接输出
puts(str) //通过字符串名字输出
puts("http://c.biancheng.net") //直接输出
return 0
}
运行结果:
http://c.biancheng.net
http://c.biancheng.net
http://c.biancheng.net
http://c.biancheng.net
注意,输出字符串时只需要给出名字,不能带后边的[ ],例如,下面的两种写法都是错误的:
printf("%s\n", str[])
puts(str[10])
扩展资料:
由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n>=0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。
字符串在存储上类似字符数组,它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。
参考资料来源:百度百科-字符串
在C语言中,字符串是以字符数组方式保存的,于是字符串数组可以用二维字符数组存储。输入时,每次输入字符串数组的一个元素(一行),根据需要,使用scanf或gets进行输入。
如:
char str[10][100]//定义字符串数组,供10行,每行最多100个字节数据。
int i
for(i = 0i <10i ++)
scanf("%s",str[i])//输入10行字符串数据。