C字符串输入输出
来源:百度知道 编辑:UC知道 时间:2024/06/06 16:30:22
main()
{
char *a[3];
int i;
for(i=0;i<3;i++)
scanf("%s",a[i]);
for(i=0;i<3;i++)
printf("%s\n",a[i]);
}
为什么出错??
要是定义个指针**p=a;
输入输出怎么写?
{
char *a[3];
int i;
for(i=0;i<3;i++)
scanf("%s",a[i]);
for(i=0;i<3;i++)
printf("%s\n",a[i]);
}
为什么出错??
要是定义个指针**p=a;
输入输出怎么写?
#include<stdio.h>
#include<malloc.h>
int main()
{
char *a[3]; //你这个是指针数组,声明后要先分配内存空间才能用。
c里面可以用malloc 动态分配。
int i;
for(i=0;i<3;i++)
a[i] = (char *)malloc(sizeof(char));
for(i=0;i<3;i++)
scanf("%s",a[i]);
for(i=0;i<3;i++)
printf("%s\n",a[i]);
return 0;
}
char *a[3];定义的是3个char*,指针是没有内存空间的。你需要为这3个指针分配空间。
a[i] = new char[256];
输入时,要带上 "&" 取地址运算符.
你试试,我这里没有运行环境.
#include<stdio.h>
void main()
{
char a[3][10];
int i,j;
for(i=0,j=0;i<3;i++)
{
scanf("%s",*(a+i));
}
for(i=0;i<3;i++)
printf("%s\n",a[i]);
}
这个我运行过了,可以如果a[3][10]中10不够大的话还可以更大。
楼主应该是要输入三个字符串吧,那就应该没错。
应该是char a[i]不要写*
a[i]前应该是有&