簡體   English   中英

C:僅打印一定數量字符的程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM