gpt4 book ai didi

c - 仅使用大小正确的插入值

转载 作者:行者123 更新时间:2023-11-30 20:55:56 25 4
gpt4 key购买 nike

代码的目标是,如果用户插入大于 X 个字符的名称,我请求一个新名称,直到他插入一个小于或等于 X 个字符的名称。我有以下代码:

char * getName(){
int size = 4;
int i;
char inserted[10];
char name[4];
while (size > 3){
printf("Insert name, maximum 3 characters: ");
fgets(inserted, 10, stdin);
for (i=0; i<4; i++){
if (inserted[i] == '\n'){
size = 3;
}
}
}
sscanf(inserted,"%s", name);
return name;
}

但似乎不起作用......我尝试调试但找不到错误。如果您能伸出援手,那就太好了。

编辑:我已经编辑了代码,有一个错误

编辑:问题不在于值是否返回,而在于函数处于无限循环中 - 似乎找不到单词是否具有正确的长度

最佳答案

编辑:

您不能从函数返回局部变量地址 [name]。您需要动态分配内存才能返回指针。您可以像

一样使用 malloc()
char * name = NULL;
name = malloc(4);

然后,在使用完内存后,您必须从 main() 释放内存。

<小时/>

旧答案:

首先,您必须将 char name[3]; 更改为 char name[4]; 以便为终止 null 腾出空间。

在您的代码中进行更改

for (i=0; i<4; i++){
if (name[i] == "/n")

for (i=0; i<4; i++){
if (inserted[i] == '\n')

关于c - 仅使用大小正确的插入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29416470/

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