| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 773 人关注过本帖
标题:关于链接2个字符串的问题。。。。
只看楼主 加入收藏
zonelight
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-3-11
收藏
 问题点数:0 回复次数:4 
关于链接2个字符串的问题。。。。
#include "stdio.h"
aaa(char str1[],char str2[],char str[])
{int i,j;
    for(i=0;str1[i]!='\0';i++)
    str[i]=str1[i];
    for(j=0;str2[j]!='\0';j++)
    str[i+j]=str2[j];
    str[i+j]='\0';
}
main()
{char s1[10],s2[10],s[10];
    printf("\n s1 \n");
    scanf("%s",s1);
    printf("\n s2 \n");
    scanf("%s",s2);
    
    aaa(s1,s2,s);
    printf("new ssss: %s \n",s);}
程序没有问题。。。。。但是这段
  str[i+j]=str2[j];
    str[i+j]='\0';
我这里不是很懂。。。。。。为什么是str[i+j]=str2[j],比如。。。。。当str1和str2都只输入1个比如str1只输入1,str2只输入2,那么str1[0]==1,str2[0]=2,那么str[0+0]=str[0]........这个怎么回事。。。。。。。。。。为什么还会正常输出。。。。。
请高手解答
搜索更多相关主题的帖子: 字符 链接 
2008-03-11 21:33
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
strcat()

学习需要安静。。海盗要重新来过。。
2008-03-11 21:47
zonelight
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-3-11
收藏
得分:0 
[bo]以下是引用 [un]sunkaidong[/un] 在 2008-3-11 21:47 的发言:[/bo]

strcat()

我的不是用这个strcat()。。。。。程序可以运行的。。也正确。。。。。。。我就是不知道为什么那段要那样子写的。。。。。
2008-03-11 21:59
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
str[i+j]=str2[j],我是这么理解的:

    由于是for循环,而且是i++或j++,它们循环一次之后,已经增值,比如说您在数组中输入一个字符,然后在for中,它赋值给str[i]相当于str[0],然后i增1,i值为1。所以,当str[i+j]时,也就相当于str[1+0],然后再把str[1+1]赋值为'\0'。所以程序中没有错误。

    希望我解释得正确,也希望您能看懂。如有不对的地方,还请各位指正一二,偶也趁机学习学习,谢谢。
2008-03-11 22:10
zonelight
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-3-11
收藏
得分:0 
[bo]以下是引用 [un]广陵绝唱[/un] 在 2008-3-11 22:10 的发言:[/bo]

str=str2[j],我是这么理解的:

    由于是for循环,而且是i++或j++,它们循环一次之后,已经增值,比如说您在数组中输入一个字符,然后在for中,它赋值给str相当于str[0],然后i增1,i值为1。所以,当str时,也就相当于str[1+0],然后再把s ...

有道理= =。。。。。。明白了。。感谢
2008-03-11 22:26
快速回复:关于链接2个字符串的问题。。。。
数据加载中...
 
   



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

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