gpt4 book ai didi

c - C 中的 Char 数组

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

我正在尝试创建一个获取字符串的函数,逐个字符地获取:

char * GetString (int dim) // dim is the size of the string
{
char c, *S;
int i = 0;

S = (char*)malloc(dim*(sizeof(char));

while ((c=getchar() != '\n') && (i < dim) && (c != EOF))
{
S[i] = c;
i++;
}

S[i] = '/0';

return S;
}

问题是当我尝试在此函数中使用“printf”时,试图查看输入是否正确,它显示了奇怪的字符,而不是我插入的字符。我不知道我错过了什么。

非常感谢。

最佳答案

这应该是一个反斜杠:

S[i] = '\0';

确保您的编译器警告已打开并且您正在关注它们。 '/0' 是非标准多字符整数文字。

反斜杠零“\0”是您要查找的 C 字符串 NUL 终止符。

此外,如果您的输入大于 dim,您就会超出缓冲区,写入比分配的字节多一个字节。我建议分配 dim+1 字节。

最后,乘以 sizeof(char) 是没有意义的 - 根据定义它是 1。

附注现在是学习如何使用调试器的绝佳时机。如果您使用的是 GNU 工具:gcc -Wall -Werror main.c,然后 gdb a.out,然后输入 r 运行。

关于c - C 中的 Char 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28913644/

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