c語言長度輸入,輸入任意長度字元串c語言

本文目錄一覽:

C語言字元串輸入長度

其實那樣是錯誤的!!

因為地址已經越界了!!

之所以能輸出是因為你馬上輸出和%s,%s是以字元串的形式輸出,要是%c的話你就不知道下一個地址在哪了!

要是一不小心會將系統的某些文件的內容給覆蓋!!所以最好別用!!!

還有勸樓主寫頭文件時如果不是在家定義的最好寫成下面的形式

#include stdio.h

系統頭文件一般最好寫成這樣,能節省運行時間,提高效率!

在c語言中如何輸入一個特別長的數

在目前的32位編譯器中(含多數的64位編譯器)int與long的長度都是相等的,都是32位的它的unsigned範圍為0到4,294,967,295 當然,一般的運算也夠了(因為大數一般用浮點)如果你的編譯器支持64位(long long或__int64)那它的unsiged範圍可達18446744073709551615當然,如果你覺得還不夠大,就要自己用數組處理了(網上也有大數運算的庫)

c語言如何輸入任意長度的字元串數組

「任意長度」實際上是做不到的,即使所用的軟體平台沒有限制,硬體環境也不允許。所以「任意長度」應當理解為在一個很大的空間之內沒有限制地輸入字元串而不用事先確定長度。鑒於這種理解,可以定義一個輸入函數,先動態申請一個較大的空間,直接向其內輸入字元串;輸入完畢後檢測其長度,再按實際需要申請一個合適大小的空間,把剛才輸入的字元串拷貝到這個合適大小的空間里,再把原先申請的大空間釋放。舉例代碼如下:

//#include “stdafx.h”//If the vc++6.0, with this line.

#include “stdio.h”

#include “string.h”

#include “stdlib.h”

#define N 131071

char *Any_Long_Str(char *p){

    char *pt;

    if((pt=(char *)malloc(N))==NULL){//Apply for a larger space for temporary use

        printf(“Apply for temporary use of space to fail…\n”);

        exit(0);

    }

    gets(pt);//Get a string from the keyboard

    if((p=(char *)malloc(strlen(pt)+1))==NULL){//Apply for a suitable size of space

        printf(“Application memory failure…\n”);

        exit(0);

    }

    strcpy(p,pt);//Copy the string pt to p

    free(pt);//Release the temporary use of space

    return p;

}

int main(void){

    char *pstr=NULL;

    printf(“Input a string:\n”);

    pstr=Any_Long_Str(pstr);

    printf(“%s\n”,pstr);//Look at…

    free(pstr);//Release the space

    return 0;

}

c語言中怎麼實現任意長度字元串輸入

其實核心就是實現動態數組,無論字元串多長,都能夠儲存。

用getchar一個一個得到字元,直到文件結束。

核心代碼實現:

        int n=0,k=100;            //初始化,字元串長度為0,字元串空間長度為100

        char * s2 = NULL,s1 = (char *)malloc(100);    //初始化字元串空間

        if (s1 == NULL)   return;                    //內存分配失敗,返回         

        while((c=getchar())!=EOF){        //判斷是否到文件結束,一個個讀取字元

            if(k=n){                    //當前字元串長度大於等於字元串空間長度時

                k*=2;                    //長度增長2倍

                s2 = (char *)realloc(s1,k);    //重新分配內存

                if(s2 == NULL){                //內存分配失敗

                    free(s1);              //釋放已分配內存

                    return;

                }else{                     //內存分配成功

                    s1=s2;

                }    

            }

            s1[n++]=c;                    //字元串賦值字元

        }

        s1[n]=0;                          //字元串末尾置為\0

c語言怎麼輸入任意長度的一個數組

首先 嚴格來說 不可能出現任意長度。 內存是有限的 超出一定長度後,不可能存的下,雖然這個值可能是超級大的,但總有限度。

其次,所謂的任意長度,其實就是可變長數組。

那麼,在事先不知道數組規模下,就要靠輸入,來確定數組大小了。

重點在於,要開闢多大的數組來存

一般有這麼幾種情況

1 直接開一個足夠大的。 比如 雖然不知道有多大,但最大不超過1000個,那就可以直接開個1000元素的數組。

2 動態分配, 使用malloc動態分配內存。

當出現可能的不夠情況,用realloc重新分配。

原創文章,作者:MQT8X,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/128213.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
MQT8X的頭像MQT8X
上一篇 2024-10-03 23:24
下一篇 2024-10-03 23:24

相關推薦

  • Python字元串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字元串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字元串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Python中將字元串轉化為浮點數

    本文將介紹在Python中將字元串轉化為浮點數的常用方法。在介紹方法之前,我們先來思考一下這個問題應該如何解決。 一、eval函數 在Python中,最簡單、最常用的將字元串轉化為…

    編程 2025-04-29
  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python學習筆記:去除字元串最後一個字元的方法

    本文將從多個方面詳細闡述如何通過Python去除字元串最後一個字元,包括使用切片、pop()、刪除、替換等方法來實現。 一、字元串切片 在Python中,可以通過字元串切片的方式來…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • Python如何將字元串1234變成數字1234

    Python作為一種廣泛使用的編程語言,對於數字和字元串的處理提供了很多便捷的方式。如何將字元串「1234」轉化成數字「1234」呢?下面將從多個方面詳細闡述Python如何將字元…

    編程 2025-04-29

發表回復

登錄後才能評論