| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3013 人关注过本帖
标题:关于指针与字符串的小问题,希望得到详解.
只看楼主 加入收藏
陆苗
Rank: 2
等 级:论坛游民
帖 子:52
专家分:39
注 册:2016-5-31
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:10 
关于指针与字符串的小问题,希望得到详解.
int main(void)
{
 char *a="you";
 char *b="Welcome you to BeiJing";

 char *p;
 p=b;

 while(*p != *a)
     p++;
 p+= strlen(a)+1; //这句不太理解, p= p + strlen(a) + 1  我的理解是 等式右边的p就表示b,这个长度加a的长度再加1,但感觉超过了整体长,说不过去~  

 printf("%s",p);
 return 0;
}
搜索更多相关主题的帖子: return Welcome 字符串 
2016-08-15 15:38
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
p是地址,strlen(a) + 1 是偏移量。
2016-08-15 15:57
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
可以运行起来,编译有警告
5    11    C:\Users\tao\Documents\未命名1.cpp    [Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]

[此贴子已经被作者于2016-8-15 17:11编辑过]

2016-08-15 17:09
gz1347351162
Rank: 2
等 级:论坛游民
帖 子:19
专家分:44
注 册:2016-5-30
收藏
得分:10 
关于指针与字符串的小问题,希望得到详解.
int main(void)
{
 char *a="you";
 char *b="Welcome you to BeiJing";

 char *p;
 p=b;

 while(*p != *a)
     p++;
 p+= strlen(a)+1; //这句不太理解, p= p + strlen(a) + 1  我的理解是 等式右边的p就表示b,这个长度加a的长度再加1,但感觉超过了整体长,说不过去~  
                    //此时的p与b不是一回事,b还是指向Welcome you to BeiJing的开始位置,而p此时指向的是Welcome you to BeiJing的y这个位置了,
                   // p + strlen(a) + 1加上了这个长度后p应该指向了t的位置,并没有越界,这是我理解的不对的话请指出
 printf("%s",p);
 return 0;
2016-08-15 17:48
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
回复 4楼 gz1347351162
跳过you输出的意思。
2016-08-15 18:00
zx315
Rank: 5Rank: 5
来 自:广东
等 级:职业侠客
威 望:2
帖 子:86
专家分:378
注 册:2016-7-13
收藏
得分:0 
回复 楼主 陆苗
you + 空格 = strlen(a) + 1

Read The Fucking Source Code~
2016-08-15 23:59
陆苗
Rank: 2
等 级:论坛游民
帖 子:52
专家分:39
注 册:2016-5-31
收藏
得分:0 
回复 2楼 吹水佬
大神的回答言简意赅,字面上我是懂了,能在详细深入点嘛. 谢谢啦~

------虚心学习,不懂就问
2016-08-16 08:43
陆苗
Rank: 2
等 级:论坛游民
帖 子:52
专家分:39
注 册:2016-5-31
收藏
得分:0 
回复 6楼 zx315
这样阿,那你说说整句的意思 前面那个P也加上怎么理解了

------虚心学习,不懂就问
2016-08-16 08:44
陆苗
Rank: 2
等 级:论坛游民
帖 子:52
专家分:39
注 册:2016-5-31
收藏
得分:0 
回复 4楼 gz1347351162
p为什么指向y?

------虚心学习,不懂就问
2016-08-16 08:46
gz1347351162
Rank: 2
等 级:论坛游民
帖 子:19
专家分:44
注 册:2016-5-30
收藏
得分:0 
回复 9楼 陆苗
while(*p != *a)
     p++;
从p指向的字符串中挨个取出字符与a指向的字符串中的第一个字母比较,当从p指向的字符串中找到一个字符与a指向的字符串中第一个字符相等时就跳出了循环,
此时指针指向p中两个字符串中相等的那个字符
2016-08-16 09:00
快速回复:关于指针与字符串的小问题,希望得到详解.
数据加载中...
 
   



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

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