关于C语言字符串数组输入问题?

Python07

关于C语言字符串数组输入问题?,第1张

这当然不行啊,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行字符串数据。