9楼的应该是正确的吧.
9楼的应该是正确的吧.
可以我接收啊!
试试下面的小程序
main()
{ char * str[5];
int i;
for(i=0;i<5;i++)
{
scanf("%s",str[i]);
}
printf("%s,%s",str[1],str[3]);
getch();
return 0;
}
INPUT
follow
basic
great
fortran
computer
OUTPUT
basic,fortran
我用的是wintc2.01编译的,没有错
我用 的是 vc 这个在编译 执行都没错 就是 在接收第2个值 就 出警告了
void main()
{
char * sort[5];
char str[5][10];
for( i = 0 ; i < 5 ; i++ )
{
sort[i] = str [i];
}
for( i = 0 ; i < 5 ; i++ )
scanf("%s",sort[i]);
}
晕哦!有你们这样使用指针数组得吗?
说穿了数组元素就是一个指针,既然是一个指针就应该指向一个地址,在上面得程序中,即没初始化,也没真确得赋值,
你知道指针指得是那片区域??
char * str[5];
int i;
for(i=0;i<5;i++)
{
str[i]=(char *)malloc(5*sizeof(char)); //这样就没错了,记得用free()释放内存,不用教了吧。
scanf("%s",str);
}
#include <stdio.h>
int main(void)
{
char *str[5];
int i;
for(i=0;i<5;i++)
scanf("%s",str[i]);
for(i=0;i<5;i++)
printf("%s\n",str[i]);
getch();
}
开始 迷糊了
char * str[5];
int i;
for(i=0;i<5;i++)
{
str[i]=(char *)malloc(5*sizeof(char)); //这样就没错了,记得用free()释放内存,不用教了吧。
scanf("%s",str);
}
我想知道这样 能实现 char *str[]={"BN54047101","BN54047102","BN54047116","BN54047123","Bn54047112"};
吗?
我感觉应该能 但是 输出时总有错!!!
#include <stdio.h>
#include <stdlib.h>
int main(void){
char * str[5];
int i;
for(i=0;i<5;i++)
{
str[i]=(char *)malloc(100*sizeof(char)); //这允许你输入100个字符
scanf("%s",*(str+i));
printf("%s\n",str[i]);
}
return 0;
}
明白了吧!
明白了~~~ 关键问题 在这 scanf("%s",*str[i]); 谢谢 shuaiye
你的签名给你改下~~~
不聪明的人,叫愚昧人.
聪明的人,叫愚人.
思维的乐趣远高于物质的享受