[英]C: Program that prints a certain number of characters only
我正在开发一个程序,当由用户输入的数字指定时,该程序只会打印出该数目的字符。 例如,如果用户输入数字10,则如果输入14个字符(包括换行符,空格和制表符),则仅会打印10个字符。 我的代码似乎适用于前三个字符,然后将其打印出来。 我不知道怎么了。
#include <stdio.h>
#include <stdlib.h>
void findchars(char *abc, int number);
int main(void)
{
char *array; // the actual array
int num; // number of characters to read, becomes array value
printf("Number of characters:");
scanf_s("%d", &num);
array = (char *)malloc(num * sizeof(char));
findchars(array, num);
printf("The first %d characters: ", num);
puts(array);
free(array);
return 0;
}
void findchars(char *abc, int number)
{
int i;
printf("Type characters and I will stop at %d: ", number);
for (i = 0; i < number; i++)
{
abc[i] = getchar();
}
}
您正在将非零终止的数组传递给puts。 如果您想让程序正常工作,则只需将数组1的数组大一点,然后在末尾添加'\\ 0'。
编辑:像这样
array = (char *)malloc((num+1) * sizeof(char));
然后在puts
之前:
array[num] = '\0';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.