咖喱饭咖喱 发表于 2017-11-8 03:42:04

网上看的题目,谁能给个思路?如写出程序 帮标注一下?

编程序,输入两个字符串(<40 个字符) , 连接后输出(不准用系统函数)
//想了挺久,还是没什么明确思路还要多练{:7_126:}

咖喱饭咖喱 发表于 2017-11-8 04:32:30

本帖最后由 咖喱饭咖喱 于 2017-11-8 04:33 编辑

#include <stdio.h>
#define n 40
int main()
{
    char s1;
    char s2;
   
    int i,j;
    printf("shurus1:");
    scanf("%s",&s1);
    printf("shurus2:");
    scanf("%s",&s2);
    for(i=0;s1!= '\0';i++);
      for(j=0;s2 != '\0';i++,j++)
    s1=s2;
    s1='\0';
    printf("s1=%s\n",s1);
    }
答案是这个,谁能解释一下后面两个循环//for(i=0; sl!=‘\0’ ; i++);
for(j=0;s2!=‘\0’ ;i++,j++)的意义以及后面s1=s2 ; s1=‘\0’的意义??

3-3 发表于 2017-11-8 07:47:20

本帖最后由 3-3 于 2017-11-8 07:50 编辑

确定这是答案吗?如果这是答案,那有点不严谨啊。

3-3 发表于 2017-11-8 07:56:39

#include <stdio.h>
#define N 40
void main()
{
    char s1;
    char s2;
   
    int i,j;
    printf("shurus1:");
    scanf("%s",&s1);
    printf("shurus2:");
    scanf("%s",&s2);
        for ( i = 0; i < N && s1 != '\0' ; i++)
                ;
        for ( j = 0; j < N && s2 != '\0'; j++)
                s1 = s2;

        s1 = '\0';

    printf("s1=%s\n",s1);
}

ba21 发表于 2017-11-8 14:14:06

咖喱饭咖喱 发表于 2017-11-8 04:32
#include
#define n 40
int main()


我敢保证这代码是你自己写出来的,而且肯定是错误的。
1,要连接char s1;   char s2; 必须还有要有个大于n+n 的数组来存放。
2,for 是用来循环迭代数组里面的字符的,迭代出来后统一存放在第3个数组里,然后输出

咖喱饭咖喱 发表于 2017-11-9 05:33:01

ba21 发表于 2017-11-8 14:14
我敢保证这代码是你自己写出来的,而且肯定是错误的。
1,要连接char s1;   char s2; 必须还有要 ...

看了后我还有一个问题,第一个循环中已经将 s1 赋值给了 s3,而i,j都是从0开始加的,
后一个循环又将 s2 赋值给 s3,i j也是从0开始加的,为何实现连接效果,而不是后面s2给s3的赋值覆盖掉前面循环si给s3的赋值?


咖喱饭咖喱 发表于 2017-11-9 05:33:58

3-3 发表于 2017-11-8 07:47
确定这是答案吗?如果这是答案,那有点不严谨啊。

抱歉 复制错了。。

咖喱饭咖喱 发表于 2017-11-9 05:48:09

咖喱饭咖喱 发表于 2017-11-9 05:33
看了后我还有一个问题,第一个循环中已经将 s1 赋值给了 s3,而i,j都是从0开始加的,
后一个循环又将...

明白了,是j的取值,前一个循环结束后下一个循环没有重制j的值,而是接下去自增
页: [1]
查看完整版本: 网上看的题目,谁能给个思路?如写出程序 帮标注一下?