gpt4 book ai didi

在 C 中更改 char[]

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

我正在寻找答案,却找不到任何地方。我希望你能帮助我。我编写了一个简单的应用程序,其中包括名称为worker的结构体和.但是当我想改变名称的值时我做不到。我不知道为什么。也许你帮不了我,或者你知道其他方法吗?我的代码:

struct workers {
char name[256]="no";
int pay=-1;
};

void addOne(struct workers work[20]) {
char name[256];
int i=0;
for (i = 0; work[i].name != "no"; i++) {}
printf_s("Enter name of worker: ");
scanf_s("%s", &name);
//-----error here-----
work[i].name = name;
}

int main()
{
int i;
struct workers work[20];
for (i = 0;i < 20; i++) {
if (work[i].name != "no") {
work[i].pay = 100 * i;
}
}
for (i = 0; i < 20; i++) {
printf_s("%s\t%d\n", work[i].name, work[i].pay);
}
return 0;
}

最佳答案

work[i].name = name;

上面这行就是问题所在。

更改如下:

snprintf( work[i].name, sizeof(work[i].name), "%s", name);

您所做的是尝试更改数组的基指针而不是名称。

代码中还有一些错误,请解决。

无法像在 C 中那样为结构设置默认值。

您必须编写代码以在循环中使用“no”初始化每个数组实例名称变量,然后使用字符串比较函数之一来比较字符串。然后调用你的addOne。

关于在 C 中更改 char[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50775209/

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