| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1274 人关注过本帖
标题:字符串与指针,运行错误
只看楼主 加入收藏
刘军
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-9-24
收藏
得分:0 
#include<iostream.h>
#include<stdio.h>
#include<string.h>
struct str_opr//结构体,count记录x数组中元素的个数
{ //x为字符型指针数组
int count;
char*x[3];
};
void inition(str_opr*p)//对指针数组进行初始化
{
p->count=0;
int i;
for(i=0;i<3;i++)
p->x[i]=new char[20];
}
void insert(str_opr*p,char*q)//q接收一个字符串,并把这个字符串插入到x中
{
strcpy(p->x[p->count],q);
(p->count)++;
}
int main()
{
str_opr str;//定义了结构体变量
inition(&str);
char hj[20];int i;
char*q=hj;//q接收一个字符串数组
while(str.count!=3)//循环,是为了给x数组赋值
{
cout<<"请输入插入的名字"<<endl;
gets(q);//系统函数,从键盘输入字符串
insert(&str,q);
cout<<"插入成功"<<endl;
}
for(i=0;i<str.count;i++)//输出各个字符串
puts(str.x[i]);
cout<<str.count;
cout<<endl;
return 0;
}
2007-10-03 21:02
栖柏
Rank: 2
等 级:论坛游民
威 望:3
帖 子:1103
专家分:17
注 册:2007-8-23
收藏
得分:0 
幸好我看的是c++ primer,差点被你们害了,这种编程风格...

You have lots more to work on! Never give up!c language!
2007-10-03 21:06
crazyboy216
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2007-6-28
收藏
得分:0 

str_opr str;//定义了结构体变量=====我觉得这样定义是有问题的,应该是struct str_opr str;(但楼主的写法确实可以通过编译哦).
那个insert函数我一看就觉得有问题,但我又说不出原因,所以就干脆自己写了一个,没楼主的复杂什么初始化我都把它干掉,我觉得没必要.
#include <stdio.h>
#include <string.h>

typedef struct str_pro
{
int count;
char s[3][20];
}Martin;

//void init(Martin *p)
//{
//int i;
//p->count=0;
//for(i=0;i<3;i++)
//p->s[i]="\0";
//}

//void insert(struct str_pro *p,char *q)
//{
// p->x[p->count]=q;
// (p->count)++;
//}

int main()
{
Martin *q;
//init(q);
int i,j=0;
char arry[20];
//char *q=arry;
while(j<3)//循环,是为了给x数组赋值
{
printf ("insert a string:");
scanf ("%s",arry) ;
strcpy(q->s[j],arry);
j++;
printf ("successful!");
}
for(i=0;i<3;i++)
printf ("the answer:%s",q->s[i]);
getch();
return 0;
}
要把指针数组改问二维数组,不然用strcpy这个函数时会报错,原因是因为q->s[j]与 arry是不同的指针类型


2007-10-04 15:34
风之梦
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2007-8-31
收藏
得分:0 
     谢谢大家的帮忙了,非常感谢
2007-10-05 13:41
静思
Rank: 3Rank: 3
来 自:沈阳
等 级:新手上路
威 望:8
帖 子:630
专家分:0
注 册:2006-2-28
收藏
得分:0 
13楼的程序有错误,结构体指针q未初始化,插入字符串时会产生异常

[此贴子已经被作者于2007-10-5 14:23:57编辑过]



英者自知,雄者自胜
2007-10-05 14:23
sccdyc
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2006-4-23
收藏
得分:0 

建议指针初始赋值NULL
void inition(str_opr*p)//对指针数组进行初始化
{
p->count=0;
int i;
for(i=0;i<3;i++)
p->x[i]=NULL
}


2007-10-05 19:55
快速回复:字符串与指针,运行错误
数据加载中...
 
   



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

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