| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1716 人关注过本帖
标题:链接两个字符串
只看楼主 加入收藏
see235959850
Rank: 2
等 级:论坛游民
帖 子:380
专家分:29
注 册:2016-12-21
收藏
得分:0 
回复 5楼 吹水佬
谢了
2016-12-28 16:44
曾湿西湖雨
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-11-23
收藏
得分:0 
回复 6楼 see235959850
1.s1[5]后面没有‘\0',它无法作为一个字符位置被读入,所以需要自己添加使其成为一个完整的字符串
2.字符串后面是自动加上'\0'的。
发表完毕。
2016-12-28 16:48
see235959850
Rank: 2
等 级:论坛游民
帖 子:380
专家分:29
注 册:2016-12-21
收藏
得分:0 
回复 5楼 吹水佬
话说谭浩强出这题还真不错,陷阱这么多,一不留心就掉进去了,学习了
2016-12-28 16:51
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
赞同六楼,字符串后面自动补'\0'是个关键~当然,如果是字符串数组最后一个空间已经用尽那就不再补0了~

写成常规int型数组好理解一点:

int a[3]={1};结果:
a[0]=1;a[1]=0;a[2]=0;
看上去所有类型数组都有在赋初值后面自动补0的原理~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-28 16:52
see235959850
Rank: 2
等 级:论坛游民
帖 子:380
专家分:29
注 册:2016-12-21
收藏
得分:0 
回复 4楼 吹水佬
又查了一下别人写的代码,最后那个j的确是+1了,代码如下
程序代码:
#include <stdio.h>
#include <conio.h>
#include <math.h>
main()
{
    char c,str1[100],str2[100],str3[300];
    int i,j;
    printf("Please input the first string\nConfirm by Enter\n");
    gets(str1);
    printf("Please input the second string\nConfirm by Enter\n");
    gets(str2);
    for(i=0;(c=str1[i])!='\0';i++)
    {
        str3[i]=str1[i];
    };
    j=i;
    for(i=0;(c=str2[i])!='\0';i++,j++)
    {
        str3[j]=str2[i];
    };

    str3[j] = '\0';    //添加'\0'

    printf("The string which has been connected is:\n%s",str3);

    getch();
}

这个str3[j] = '\0';中的j是str3[j]=str2[i];中的j+1因为j++;
   
2016-12-28 17:06
see235959850
Rank: 2
等 级:论坛游民
帖 子:380
专家分:29
注 册:2016-12-21
收藏
得分:0 
搞懂了,谢谢各位大神提供的帮助
2016-12-28 17:09
快速回复:链接两个字符串
数据加载中...
 
   



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

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