孤世星辰 发表于 2020-4-6 21:29:22

这个怎么乱码了

1 #include<stdio.h>
2 #define MAX 1024
3 int main()
4 {
5         char str2;
6         char str1;//确保连接后不越界
7
8         char *target1=str1;
9         char *target2=str2;
10
11         char ch;
12         int a=0;
13
14         printf("请输入第一个字符串:");
15         fgets(str1,MAX,stdin);
16         printf("请输入第二个字符串:");
17         fgets(str2,MAX,stdin);
18         printf("请输入需要连接的字符个数:");
19         scanf("%d",&a);
20
21         while(a<7)
22         {
23               *target1++;
24               if((int)ch<0)
25               {
26                         target1+=2;
27               }
28               a++;
29         }
30
31         while((*target1++=*target2++)!='\0')
32         {
33               ;
34         }
35         printf("%s",str1);
36
37         return 0;
38 }

有一个传说 发表于 2020-4-6 22:42:01

我的理解是,一个中文字符在数组中是占两个位,连接字符3个导致了撒无法完整输出

孤世星辰 发表于 2020-4-6 23:00:19

有一个传说 发表于 2020-4-6 22:42
我的理解是,一个中文字符在数组中是占两个位,连接字符3个导致了撒无法完整输出

我考虑了哇,那个24行就是考虑他是中文字符的情况,这里中文字符是占3个位置
页: [1]
查看完整版本: 这个怎么乱码了