| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 535 人关注过本帖
标题:这......这.....这两段代码不是一样的吗?怎么一个运行起来那么烫?>
只看楼主 加入收藏
zh77
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:84
专家分:22
注 册:2011-8-5
结帖率:100%
收藏
已结贴  问题点数:8 回复次数:8 
这......这.....这两段代码不是一样的吗?怎么一个运行起来那么烫?>
#include <stdio.h>

int main()
{
    int i, j;
    char str1 [100];
    char str2 [100];
    gets(str1);
    gets(str2);

    for (i = 0; str1 [i] != '\0'; i++);

    for (j = 0; str2 [j] != '\0'; j++)
    {
        str1 [i + j] = str2[j];
    }
 
    puts(str1);
    puts(str2);

    system("pause");
    return 0;
}

题目是连接两个字符串 要求手动输入 还不能用strcat
上面一段很烫  下面一段却可以  为什么呢? 求解释  谢谢
还有麻烦大虾吧下面一段代码该空格的空格 该空行的空行 把它变成格式规范的  代码 我学习学习 谢谢!

#include <stdio.h>

int main()
{
    char str1 [100] = "i am a";
    char str2 [100] = " boy";
    int i, j;
    gets(str1);
    gets(str2);
   
    for (j = 0; str1 [j] != '\0'; j++);

    for (i = 0; str2 [i] != '\0'; i++)
    {
        str1 [i + j] = str2 [i];
    }
   
    printf("%s\n", str1);
//    printf("%s\n", str2);

    system("pause");
    return 0;
}








搜索更多相关主题的帖子: include system return 字符串 
2011-08-13 12:57
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:1 
程序代码:
#include <stdio.h>

int main()
{
     char str1[100] = "i am a";
     char str2[100] = " boy";
     int i, j;

     gets(str1);
     gets(str2);

 
     for (j = 0; str1 [j] != '\0'; j++);
        for (i = 0; str2 [i] != '\0'; i++) 
       {
           str1[i + j] = str2[i];
       }

 
    printf("%s\n", str1);
    // printf("%s\n", str2);

   system("pause");
   return 0;
}
这个我一般这么写 也请老手赐教 呵呵
2011-08-13 14:08
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:2 
for (i = 0; str2 [i] != '\0'; i++)
    {
        str1 [i + j] = str2 [i];
    }
   
//加一个str1[i+j]=0;
2011-08-13 14:14
lccwyj
Rank: 4
等 级:业余侠客
帖 子:71
专家分:203
注 册:2011-5-6
收藏
得分:2 
char a[100],b[100],*p,*q;
gets(a);
gets(b);
p=a;q=b;
while(*p)p++;
while(*q)*p++=*q++;
*p=0;
puts(a);
puts(b);
2011-08-13 14:17
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:0 
程序代码:
#include <stdio.h>

int main()
{
    int i,j;
    char str1[100]={0};
    char str2[100]={0};

    gets(str1);
    gets(str2);

    for (i = 0; str1 [i] != '\0'; i++);
         for (j = 0; str2 [j] != '\0'; j++)
         {
             str1 [i + j] = str2[j];
         }
    puts(str1);
    puts(str2);

  return 0;
}
刚调试了下 因为你的数组没有初始化 数组中除了有字符的除外其它都为‘?’你自己可以试下
2011-08-13 14:22
zh77
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:84
专家分:22
注 册:2011-8-5
收藏
得分:0 
回复 5楼 烟雾中的迷茫
但是 你如果在
gets(str1);
gets(str2);
puts(str1);
puts(str2);

输出的结果就是你输入的字符串  在没赋初值的情况下
为什么到后面就不行了呢?
2011-08-14 17:31
QQ346957135
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:148
专家分:658
注 册:2011-8-9
收藏
得分:0 
楼主忘记了手动合并后最后要加入'\0',要不然你怎么判断字符串的末尾呢?
程序代码:
#include <stdio.h>
#include<stdlib.h>
int main()
{
    int i, j;
    char str1 [100];
    char str2 [100];
    gets(str1);
    gets(str2);
    for (i=0;str1[i]!='\0';i++);
    for (j=0;str2[j]!='\0';j++)
    {
        str1 [i+j]=str2[j];
    }
    str1[i+j]='\0';
    puts(str1);
    puts(str2);
    system("pause");
    return 0;
}

我是在VC上运行的,所以用到了stdlib.h头文件

A real warrior never quits.
2011-08-14 18:01
QQ346957135
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:148
专家分:658
注 册:2011-8-9
收藏
得分:3 
printf和puts函数有点不同,puts函数遇到'\0'才停止输出,我也是刚发现的~~

A real warrior never quits.
2011-08-14 18:05
zh77
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:84
专家分:22
注 册:2011-8-5
收藏
得分:0 
回复 8楼 QQ346957135
谢谢!
2011-08-14 22:10
快速回复:这......这.....这两段代码不是一样的吗?怎么一个运行起来那么烫?>
数据加载中...
 
   



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

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