| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 486 人关注过本帖
标题:[求助]字符串 指针问题
只看楼主 加入收藏
phzzy
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-5-1
收藏
 问题点数:0 回复次数:5 
[求助]字符串 指针问题
就是把字符串的大写字母变小写字母

数组形式就是对的
char str1[]="AAA";
int i = sizeof(str1);
for (i; i>=0; i--) {
if (str1[i] >= 'A' && str1[i] <= 'Z') {
str1[i] = str1[i] + 32;
}
}
printf("%s" , str1);

--------------------------------------

指针形式就是错的...怎么回事?
char *str1="AAA";
int i = sizeof(str1);
for (i; i>=0; i--) {
if (*(str1+i) >= 'A' && *(str1+i) <= 'Z') {
*(str1+i) = *(str1+i) + 32;
}
}
printf("%s" , *str1);
搜索更多相关主题的帖子: 指针 字符 AAA char 
2006-10-25 15:31
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
收藏
得分:0 
char *str1="AAA";
等价于const char *str1="AAA";
"AAA"是字符串常量,不可改变

2006-10-25 15:40
husi
Rank: 1
等 级:新手上路
威 望:1
帖 子:46
专家分:0
注 册:2006-10-17
收藏
得分:0 
指针形式就是错的...怎么回事?
char *str1="AAA";
int i = sizeof(str1);

用sizeof(str1)也有错误,他返回的是指针所指向变量的首地址的长度。一般为4。并不是str1的长度。
printf("%s" , *str1);把*str1改为str1。

2006-10-25 18:56
holy628
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-4-3
收藏
得分:0 

两种方式都存在越界的危险.

2006-10-25 19:08
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
收藏
得分:0 
不同的编译器会有不同的处理,你用的VC++编译的吧
C中把字符串常量看成字符数组来处理,所以不会出错
C++中把字符串常量看成真正的常量,在内存中是不可以改变的

unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-10-25 19:21
phzzy
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-5-1
收藏
得分:0 
哦,谢谢哈:)

2006-10-25 20:12
快速回复:[求助]字符串 指针问题
数据加载中...
 
   



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

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