溫馨提示×

c語言怎么輸入未知長度的字符串

小億
450
2024-02-26 12:20:28
欄目: 編程語言

在C語言中,可以使用動態內存分配函數malloc()realloc()來輸入未知長度的字符串。首先,可以使用malloc()函數來分配一個初始大小的內存空間來存儲字符串,然后使用realloc()函數來根據需要調整內存空間的大小。

以下是一個示例代碼:

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

int main() {
    char *input = (char *)malloc(100); // 初始分配100個字節的內存空間
    char *temp;
    int len = 0;
    
    if (input == NULL) {
        printf("內存分配失敗\n");
        return 1;
    }
    
    printf("請輸入字符串:\n");

    while(1) {
        if (len >= 100) {
            // 調整內存空間大小
            temp = (char *)realloc(input, len + 10);
            if (temp == NULL) {
                printf("內存分配失敗\n");
                free(input);
                return 1;
            } else {
                input = temp;
            }
        }

        // 逐字符讀取輸入
        input[len] = getchar();
        
        if (input[len] == '\n') {
            input[len] = '\0';
            break;
        }
        
        len++;
    }

    printf("輸入的字符串為:%s\n", input);

    free(input);
    
    return 0;
}

在這個示例代碼中,首先使用malloc()函數分配了一個初始大小為100字節的內存空間來存儲字符串。然后在一個循環中逐字符讀取輸入的字符串,并根據需要使用realloc()函數調整內存空間的大小。當輸入結束時,打印出輸入的字符串并釋放內存空間。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女