| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1094 人关注过本帖
标题:[求助]一个string的赋值和打印的问题 小萝卜这厢有礼了
取消只看楼主 加入收藏
南京小萝卜
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-7-29
收藏
 问题点数:0 回复次数:2 
[求助]一个string的赋值和打印的问题 小萝卜这厢有礼了
第一步,先看个小程序:

#include <stdio.h>

main()

{
char str[]="this is the original one.";
char *ptr_str;

ptr_str= str;
printf("Now ptr_str is :%s\n", ptr_str);

return 0;
}

运行没有问题。

第二步,改成:
 char str[]="this is the original one.";
char *ptr_str;

 str[]="this is not the original one.";
ptr_str= str;
printf("Now ptr_str is :%s\n", ptr_str);
编译的时候第三行出错。怎么回事?

第三步,可能不能给str[]先赋值,把第一行的赋值语句去掉,改成:
 char str[];
char *ptr_str;

 str[]="this is not the original one.";
ptr_str= str;
printf("Now ptr_str is :%s\n", ptr_str);
编译的时候第一行、第三行均出错。怎么回事?

第四步,把程序改得再简单一点,把char str[]干脆就去掉了:
char *ptr_str;

*ptr_str= "This is a simple test";
printf("Now ptr_str is :%s\n", ptr_str);
编译的时候没有错,但是有两个警告。但是运行不起来,系统出错。

请问各位大哥大姐,这是怎么回事?string真的让小萝卜头大了。谢谢。




搜索更多相关主题的帖子: 小萝卜 str 赋值 ptr 
2007-07-29 14:59
南京小萝卜
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-7-29
收藏
得分:0 
 谢了,雾都大哥。

我改了一下:
 char str[80]="aaaaaaaaa";
char *ptr_str;

str[80]="bbbbbbbbb";
ptr_str= str;
printf("Now ptr_str is :%s\n", ptr_str);

 这下子str[80]定义了一个80个字符的数组。可是打印出来后,是:aaaaaaaa.
也就是说,第三句没有把值改过来。

其实我的问题在于:怎么样定义一个字符串,在程序的运行中间能修改值。
 我在第二行定义了一个 *ptr_str,指望它能在运行中被修改,就是主贴的第四步。但是不行,所以引入了一个str[80]的字符串数组,现在看来我还是不行。唯一能做的,是第一步。
忘了说一句,我用的是VC++,6.0版的。
 小萝卜刚学C,才疏学浅,还望各位赐教。
 谢谢啦。
2007-07-29 15:37
南京小萝卜
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-7-29
收藏
得分:0 
谢谢雾都大哥和各位,总算做出来了。
有个问题,关于头文件的。你怎么知道string.h里有什么函数?比如说这个strcyp,我怎么知道它在哪个头文件里?
再次谢谢。
2007-07-30 11:26
快速回复:[求助]一个string的赋值和打印的问题 小萝卜这厢有礼了
数据加载中...
 
   



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

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