gpt4 book ai didi

c - 程序没有输出完整的字符串

转载 作者:太空宇宙 更新时间:2023-11-04 01:55:56 25 4
gpt4 key购买 nike

我正在学习 C,在打印随机生成的字符串时遇到了问题。

下面的代码只打印出前 89 个字符,我需要得到全部 1000 个字符。

我曾尝试搜索类似的问题并查找 c 教程,但找不到解释。感谢您的帮助。

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

int main(){
srand(1000);
int i;
char *niz;
niz = calloc(1001, sizeof(char));
for (i = 0; i < 1000;i++){
int randbroj = rand() % 62;
if (randbroj < 10){
niz[i] = randbroj + 48;
}
if (randbroj > 10 && randbroj < 36){
niz[i] = randbroj + 55;
}
if (randbroj > 35 && randbroj < 62){
niz[i] = randbroj + 61;
}
}
niz[1000] = '\0';
printf("%s",niz);
return 0;
}

最佳答案

calloc() 将返回 0 填充的内存。因此,在您的情况下,如果 if 检查均不匹配(发生在 randbroj == 10 的情况下),则 niz[i] 不会获取任何新值并保留默认值 0,这是空终止符的值。

你的字符串到此结束。

解决方案:添加对所有 可能值的检查,包括 10。

关于c - 程序没有输出完整的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34289601/

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