當前位置:首頁 » 編程語言 » c語言如何輸入長度
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言如何輸入長度

發布時間: 2022-05-19 22:33:04

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

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

其次,所謂的任意長度,其實就是可變長數組。
那麼,在事先不知道數組規模下,就要靠輸入,來確定數組大小了。
重點在於,要開辟多大的數組來存

一般有這么幾種情況
1 直接開一個足夠大的。 比如 雖然不知道有多大,但最大不超過1000個,那就可以直接開個1000元素的數組。
2 動態分配, 使用malloc動態分配內存。
當出現可能的不夠情況,用realloc重新分配。

『貳』 c語言編程序,輸入字元串的有效長度,並輸出該字元串

int
i=0,*j;
定義了一個整型指針變數j,j++會跳過一個整型數據空間(4)
如:輸入數據為:abcdefg
j=a;
此時j指向a所在的地址
j++;
j跳過四個位元組,j指向e所在地址,因此,你的統計會不準確。
之所以輸出21,只能說,你的程序運行中,掃描內存中的數據是以\0結尾的,而只有找到21*4的位置才發現\0,這是運行時的情況,不是必然的。
修改成char
*j;就好了。這樣j++會跳過一個字元型數據空間(1),才能正確遍歷數組!

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

方法:
1)逐個元素進行賦初值。例如:
char
a[12]={'g','o','o','d','
','m','o','r','n','i','n','g'};
採用這種方式對字元數組初始化,可以不包括結束標志,這是合法的。但在對數組整體輸出時系統無法判斷字元串是否結束,輸出結果會存在問題。因此通常人為的加上『\0』。上例做如下改動更合理:
char
a[13]={'g','o','o','d','
','m','o','r','n','i','n','g','\0'};
2)用字元串常量來初始化字元數組:
char
a[]="good
morning";或
char
a[]={"good
morning"};
採用這種方式初始化字元數組,可以不指定數組長度,但數組的實際長度比字元串常量的長度多1,因為系統會在最後添加字元串結束標志『\0』;若指定了數組的長度,如果字元串常量的長度大於數組長度會出錯,如果小於數組長度,系統會將未賦值的元素全部充成『\0』。

『肆』 如何輸入任意長度的字元串用c語言來寫,不用C++和String類

要輸入任意長度字元串,就需要使用動態內存

也就是逐個元素讀入,當不夠的時候重新分配。

以下是一個簡單的思路, 以 作為字元串結束標記。

#include<stdio.h>
#include<stdlib.h>
intmain()
{
intlen=100;
char*p=NULL;
intcnt=0,c;
p=(char*)malloc(len);
while((c=getchar())!=' ')
{
p[cnt++]=c;
if(cnt>=len-1)
{
len+=100;
p=(char*)realloc(p,len);//不夠,重新分配內存。
}
}
p[cnt]=0;
puts(p);
free(p);
return0;
}

『伍』 c語言如何輸入限制長度的字元串

這個可以從緩沖區來做
有一個輸入緩沖區,不管是gets或者for循環用scanf單個輸入,輸入後先進入緩沖區,在從緩沖區讀入
你可以定義緩沖區的長度,讓他不進入緩沖區,直接讀入
具體做法我不知道,你網路一下吧

『陸』 如何用C語言寫程序:輸入一個長度小於100的字元串,統計標點符號個數,並輸出

在英文字元中,只要不是空格數字或字母,就都屬於是標點或符號的范圍,所以這樣的話,整個程序就比較好寫了:

#include<stdio.h>

#istdio.<ctype.h>

int main()

{ int n=0;

char c;

while((c=getchar())!=' ')

if(c!=' '&&!isalnum(c))n++;

printf("%d ",n);

return 0;

}

『柒』 [C語言]我想問下 怎麼控制輸入字元串的長度比如輸入六位以上

可以弄個循環,如果字元串長度不滿足條件就始終循環,舉個例子:

charstr[100]={0};
scanf("%s",str);
while(strlen(str)<=6)
{
printf("輸入字元串太短(需6個字元以上),請重新輸入!");
scanf("%s",str);
}
.........................
..........................

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

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

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

  3. 核心代碼實現:

intn=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;//字元串末尾置為