第1个回答 2014-02-23
用fgets。其实也可以用gets,但是fgets可控读取字符串的长度,避免字符串太长溢出你分配的数组空间。
#include <stdio.h>
int main(void) {
char str[24][80];
int i;
for (i = 0; i < 3; i++)
fgets(str[i], 80, stdin); // fgets从标准输入流stdin逐行读(最多80-1个字符),自动追加零字符'\0'为第80个字符
for (i = 0; i < 3; i++)
puts(str[i]);
return 0;
}
第2个回答 2014-02-13
用循环加上strcpy依次赋值,具体代码如下:
#include<stdio.h>
#include <string.h>
main()
{
int i;
char a[8][8];//建立二维数组
char *p[4]={"qwert","asdfg","zxcvb","pokmjh"};//建立指针数组
for (i=0;i<4;i++)
{
strcpy (a[i],p[i]);puts (a[i]);//把p的内容依次复制到a,可视为字符串的赋值
}
}
第3个回答 2014-02-13
for循环中嵌套一个while,判断条件为遇到回车(\r)跳出while循环,如此反复输入就可将多行放入二维数组中。
for(int i=0;i<length;i++){
while(input() != '\r'){
//加入到数组中
}
}
input为带输入返回值的方法。
第4个回答 2014-03-03
#include<stdio.h>
void main()
{
int i,j;
char str[5][20];
printf("输入几行数据(<=5)");
scanf("%d",&j);
printf("请输入字符串:");
for(i=0;i<j;i++)
scanf("%s",str[i]);
}