#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void putstring(char* a)
{
int len = strlen(a);
for (int i = 0; i < len; i++)
{
printf("%c", a[i]);
}
return;
}
char* sq(char* a, int n)
{
char* uu = (char*)malloc(sizeof(char) * (n + 1));
int i=0;
for (int i = 0; i < n; i++)
{
uu[i] = a[i];
}
uu[n - 1] = '\0';
return uu;
}
int main(void)
{
int i = 0, j = 0, k = 0;
char* a[100];
char b[100], sign[100];
printf("请输入字符串:\n");
gets_s(sign);
while (sign[i] != '\0')
{
if (sign[i] == ';')
{
if (j == 0)
{
int m = i - j;
memcpy(b, sign, m + 1);
a[k] = sq(b, m + 2);
j = i;
i++;k++;
}
else
{
int m = i - j;
memcpy(b, sign + j + 1, m + 1);
a[k] = sq(b, m + 1);
j = i;
i++;k++;
}
}
i++;
}
for (int i = 0; i < k; i++)
{
if (i == k - 1)
{
putstring(a[i]);
printf("\n");
continue;
}
puts(a[i]);
printf("\n");
}
return 0;
}
代码里面没有看到数组C,A,B不是计算出来了吗?
sq方法中, uu[n - 1] = '\0';有问题吧,结束符应该给最后的位置。 修改为uu[n] = '\0';
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632