gpt4 book ai didi

c - 为什么 strcat 会产生这个错误?

转载 作者:行者123 更新时间:2023-11-30 18:24:16 25 4
gpt4 key购买 nike

[警告]传递“strcat”的参数 1 会在不进行强制转换的情况下从整数生成指针当我使用 STRCAT 时会出现此错误,我应该做什么,下面是我的代码

#include <stdio.h>
#include <string.h>

void main() {
char a[20], b[256], p = NULL, f;
int i, j, n, k, c[20], t, x, l;
printf("enter the no of possible characters");
scanf("%d", &k);
printf("enter the possible characters in the dictionary");
printf("hi");
for (i = 0; i < k; i++) {
c[i] = (i);
a[i] = getchar();
}
for (i = 0; i < k; i++) {
printf("%d %s\n ", c[i], a[i]);
}
l = k;

printf("enter the string\n");
scanf("%s", &b);
n = strlen(b);
printf("%d", n);
for (i = 0; i < n; i++) {
strcat(p, b[i]);
}
getch();
}

最佳答案

这是因为 strcat 采用以 null 结尾的字符串,而不是单个字符。您可以通过在位置 n 处以 null 终止 b 并调用 strcat 一次来解决此问题:

b[n] = '\0';
strcat(p, b);

这会将 b 的初始 n 个字符一次性附加到 p 中。当然,考虑到 p 中没有任何字符,这是完全没有意义的:您不妨使用 strcpy。当然,您需要将 p 声明为足够大的字符缓冲区以容纳所有 b:

char a[20],b[256],p[256]={0},f;
// ^^^^^^^^^
b[n] = '\0';
strcpy(p, b);

关于c - 为什么 strcat 会产生这个错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42910552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com