| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3233 人关注过本帖
标题:[求助]字符指针数组能动态赋值吗?
只看楼主 加入收藏
qqlilichong
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-11-20
收藏
得分:0 

9楼的应该是正确的吧.

2006-11-22 20:28
whw19840229
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2006-7-20
收藏
得分:0 
以下是引用xianlin_lea在2006-11-22 13:02:56的发言:

可以我接收啊!
试试下面的小程序
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]);
}

2006-11-22 21:27
whw19840229
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2006-7-20
收藏
得分:0 

int i 马虎

2006-11-22 21:28
shuaiye
Rank: 1
等 级:新手上路
帖 子:445
专家分:0
注 册:2006-5-15
收藏
得分:0 

晕哦!有你们这样使用指针数组得吗?

说穿了数组元素就是一个指针,既然是一个指针就应该指向一个地址,在上面得程序中,即没初始化,也没真确得赋值,

你知道指针指得是那片区域??

char * str[5];

int i;

for(i=0;i<5;i++)
{
str[i]=(char *)malloc(5*sizeof(char)); //这样就没错了,记得用free()释放内存,不用教了吧。

scanf("%s",str);
}



由于工作,N久都没来了!
2006-11-22 21:45
slong
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-11-9
收藏
得分:0 

#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();
}

2006-11-22 22:06
whw19840229
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2006-7-20
收藏
得分:0 

开始 迷糊了
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"};
吗?

我感觉应该能 但是 输出时总有错!!!

2006-11-22 22:26
whw19840229
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2006-7-20
收藏
得分:0 
15楼 的 能 执行吗    我在vc里 是不能执行  只能输入第一个 然后 回车 就出错误
2006-11-22 22:28
shuaiye
Rank: 1
等 级:新手上路
帖 子:445
专家分:0
注 册:2006-5-15
收藏
得分:0 

#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;
}

明白了吧!


由于工作,N久都没来了!
2006-11-23 11:31
shuaiye
Rank: 1
等 级:新手上路
帖 子:445
专家分:0
注 册:2006-5-15
收藏
得分:0 
char *str[]={"BN54047101","BN54047102","BN54047116","BN54047123","Bn54047112"};

初始话可以

由于工作,N久都没来了!
2006-11-23 11:32
whw19840229
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2006-7-20
收藏
得分:0 

明白了~~~ 关键问题 在这 scanf("%s",*str[i]); 谢谢 shuaiye



你的签名给你改下~~~
不聪明的人,叫愚昧人.
聪明的人,叫愚人.
思维的乐趣远高于物质的享受

2006-11-23 12:03
快速回复:[求助]字符指针数组能动态赋值吗?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012879 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved