| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1717 人关注过本帖
标题:链接两个字符串
只看楼主 加入收藏
see235959850
Rank: 2
等 级:论坛游民
帖 子:380
专家分:29
注 册:2016-12-21
结帖率:100%
收藏
 问题点数:0 回复次数:15 
链接两个字符串
我想问问注释里面的(4),在i+到5以后是怎么工作的,不讲这个的或者乱扯淡的垃圾请不要发言,谢谢
程序代码:
#include<stdio.h>
#include<string.h>
int main()
{
    char s1[80], s2[40];
    int i = 0, j = 0;
    printf("Input s1:\n");
    scanf_s("%s", s1, 80);
    printf("\n");
    printf("Input s2:\n");
    scanf_s("%s", s2, 40);
    while (s1[i] != '\0')               //(1)这里只要s1[i] != '\0',i++;例如输入s1=123,s2=456,此时s1[2]=3,跳到(2)
        i++;
    while (s2[j] != '\0')               //(2)和(1)类似
        s1[i++] = s2[j++];               //(3)此时i++是从3即s1[3]开始+的,因为(1)中i的计数,一直加到5
    s1[i] = '\0';                       //(4)?这怎么实现?此时i是几,为什么?
    printf("\nThe new string is:\n");
    printf("%s", s1);
    printf("\n");
    return 0;
}


[此贴子已经被作者于2016-12-28 15:47编辑过]

搜索更多相关主题的帖子: 字符串 color 
2016-12-28 15:42
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
执行完s2后,i同样等于strlen(s1)-1;发言完毕~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-28 15:50
see235959850
Rank: 2
等 级:论坛游民
帖 子:380
专家分:29
注 册:2016-12-21
收藏
得分:0 
回复 2楼 九转星河
那s1后面没有'\0'为什么不继续执行注释里(1)的位置
2016-12-28 16:11
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10570
专家分:43038
注 册:2014-5-20
收藏
得分:0 
这样写应该容易理解
    i = 0;
    while (s1[i] != '\0')
    {
        i++;
    }
    while (s2[j] != '\0')
    {
        s1[i] = s2[j];
        i++;
        j++;
    }
    s1[i] = '\0';
2016-12-28 16:19
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10570
专家分:43038
注 册:2014-5-20
收藏
得分:0 
回复 3楼 see235959850
s1按字符串输入会自动以'\0'结束
2016-12-28 16:20
see235959850
Rank: 2
等 级:论坛游民
帖 子:380
专家分:29
注 册:2016-12-21
收藏
得分:0 
回复 5楼 吹水佬
我想问问注释(2)执行结束后,s1(5)后面有没有'\0'?为什么?如果没'\0',为什么不执行(1)?而且那个s1[i]='\0';表示是i几?
2016-12-28 16:33
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
我用的是vc版,vs的,我也不太懂,但想来理解其中原理也是 不难的,这方面我也不能说太多~自己统计一下字符数据以及对应的变量关系就行了~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-28 16:34
see235959850
Rank: 2
等 级:论坛游民
帖 子:380
专家分:29
注 册:2016-12-21
收藏
得分:0 
回复 4楼 吹水佬
哦,这样写i是6
2016-12-28 16:36
see235959850
Rank: 2
等 级:论坛游民
帖 子:380
专家分:29
注 册:2016-12-21
收藏
得分:0 
回复 7楼 九转星河
求解释,我觉得很难
2016-12-28 16:37
see235959850
Rank: 2
等 级:论坛游民
帖 子:380
专家分:29
注 册:2016-12-21
收藏
得分:0 
回复 4楼 吹水佬
你的意思是两个while之间是从上而下执行吗?
2016-12-28 16:41
快速回复:链接两个字符串
数据加载中...
 
   



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

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