silver-crow 发表于 2022-2-12 00:02:46

为什么最后一个字符录进去的不是str2指定位置的字符而是一个竖线呢?

#include <stdio.h>
#include <stdlib.h>
#define MAX 1024

int main()
{
    char str1, str2;//这里2*MAX是用来保证不会越界的
    char *pstr1 = str1, *pstr2 = str2, ch;
    int i, j, k, length1, length2, length3;

    printf("请输入第一个字符串到str1中:");
    fgets(str1, MAX, stdin);
    printf("请输入第二个字符串到str2中:");
    fgets(str2, MAX, stdin);
    printf("请输入需要连接的字符个数:");
    scanf("%d", &j);

    length1 = strlen(str1);
    length2 = strlen(str2);
    str1 = "\0";
    str2 = "\0";

    //这个循环用来确定复制str1的长度,长度用k表示
    j = j * 2;
    for(k = 0; j != 0; k++)
    {
      if(str1 < 0)
      {
            j--;
      }
      else
      {
            j = j - 2;
      }
      if(k == length2 - 1)
      {
            break;
      }
    }

    for(i = 0; i < k; i++)
    {
      str1 = str2;
    }
    length3 = length1 + k - 1;
    str1 = "\0";

    printf("连接后的结果是:%s", str1);

    return 0;
}

wp231957 发表于 2022-2-12 07:34:59

鱼c的长度是3,第4位是半个工字,所以是乱码
页: [1]
查看完整版本: 为什么最后一个字符录进去的不是str2指定位置的字符而是一个竖线呢?