本文目錄一覽:
C語言 如何定義字元串數組
C語言字元串數組中的每一個元素均為指針,即有諸形如「ptr_array[i]」的指針。由於數組元素均為指針,因此ptr_array[i]是指第i+1個元素的指針。
例:如二維指針數組的定義為:char *ptr_array[3]={{“asdx”,”qwer”,”fdsfaf”},{“44444″,”555″,”6666”},{“a78x”,”q3er”,”f2f”}};
擴展資料
字元串數組數組元素表示方法:
數組元素的一般形式為:數組名[下標] 其中的下標只能為整型常量或整型表達式。如為小數時,C編譯將自動取整。
例如,a[5],a[i+j],a[i++]都是合法的數組元素。數組元素通常也稱為下標變數。必須先定義數組, 才能使用下標變數。在C語言中只能逐個地使用下標變數, 而不能一次引用整個數組。
參考資料來源:百度百科—指針數組
c語言字元串跟字元數組的定義都一樣,那如何區分呢?
實現目的
我們在用C語言編寫程序時,經常會遇到使用字元串數組的情況,這種數組的特點是, 數組中的每個元素都是一個字元串,但每個字元串的長度卻不相同。如果你使用C++語言進行編程的話,實現起來相對比較簡單,只需直接選擇標準模板庫的字元串string類,在代碼中定義該類的一個數組即可實現。現在的問題是,在純C語言中如何定義這樣的一個字元串數組呢?
如對於下面的一個字元串數組:
str = {
「I love C.」,
「I love C++.」,
「I love JAVA.」,
「I love Python.」,
「I love LabVIEW.」
}
下面給出C語言中的兩種定義方法。
方法1:定義一個char類型的二維數組
這種方法是通過定義一個char類型的二維數組實現,通過二維數組的行索引可得到數組中的每個字元串,列的大小限定了每個字元串所能包含的最大字元個數,所以採用這種定義方式時,列的大小必須不能小於數組所有字元串的最大長度。如對於上面的數組,C語言的定義代碼如下:
在取該數組的每個字元串時,直接對行索引即可。
方法2:定義一個指向char類型的指針數組
這種方法是通過定義一個指向char類型的指針數組實現,數組中的每個元素都是一個指針,通過該指針可得到數組中的每個字元串。如對於上面的數組,C語言的定義代碼如下:
兩種方法對比
上面的兩種方法都可以實現我們的目的,但在內存的佔用上兩種方法不同。第1種方法定義了一個5行20列的二維數組,即每個字元串所佔的位元組長度都為20個,所以共需要佔用100個位元組,而第2種方法是定義的指針數組,每個指針指向的字元串佔用的位元組長度是其實際長度,所以其總的長度肯定小於100個位元組。綜合來講,第1種方法相對於第2種方法,造成了存儲空間的浪費情況。
字元串數組定義及使用的完整測試代碼
下面給出這個例子的完整的C語言測試代碼,如下圖所示:
程序運行結果如下圖所示:
總結
一般在C語言中定義字元串的數組時,推薦使用第2種方法,特別是對於單片機、嵌入式等方面的程序開發時,可以充分利用有限的硬體資源,避免存儲空間的浪費。
C語言編程?字元數組與字元串?
void stringLower(char *str){
while (*str != ‘\0’)
{ if (*str =’A’ *str = ‘Z’)
*str += 32;
str++;
}
}
int main( int argc , char *argv[] )
{ char str[20];
scanf(“%s”,str);
stringLower(str);
printf(“%s\n”,str);
運行結果
C語言中字元數組及字元串處理函數
一、字元數組的定義
一維字元數組:用於存儲和處理1個字元串,其定義格式與一維數值數組一樣。
char str[20];
二維字元數組:用於同時存儲和處理多個字元串,其定義格式與二維數值數組一樣。
char country[10][20];
country[i]:第i個字元串
二.字元數組的初始化
字元數組的初始化.
1.可以通過為每個數組元素指定初值字元來實現。
char str[10]={ ‘I’,’ ‘,’a’,’m’,’ ‘,『h』,’a’,’p’,’p’,’y’};
char str[ ]={“I am happy”}; 可以省略花括弧,如下所示
char str[ ]=”I am happy”;
char country[10][20]={「china」,」japanese」,……};
注意:上述這種字元數組的整體賦值只能在字元數組初始化時使用,不能用於字元數組的賦值,字元數組的賦值只能對其元素一一賦值,下面的賦值方法是錯誤的
char str[15];
str=”I am happy”;
strcpy(str, “I am happy”);
不是用單個字元作為初值,而是用一個字元串(注意:字元串的兩端是用雙引號「」而不是單引號『』括起來的)作為初值。
『a』 「a」區別
三、字元數組的引用
字元數組的逐個字元引用,與引用數值數組元素類似。
(1)字元數組的輸入
除了可以通過初始化使字元數組各元素得到初值外,也可以使用getchar()或scanf()函數輸入字元。
例如:
char str[10];
…… for(i=0; i10; i++)
{ scanf(\”%c\”, str);
fflush(stdin); /*清除鍵盤輸入緩衝區*/
}
這裡只是一部分具體你查看這裡:
c語言如何將多個字元串放入數組
方法一:使用二維字元數組,示例:
#includestdio.h
#includestdlib.h
int main(int argc, char *argv[])
{
char c[][5] = {“abc”,”haha”,”no”};
for (int i=0; i3; i++)
{
printf(“%s\n”,c[i]);
}
return 0;
}
方法二:使用 string 數組,示例:
#includestdio.h
#includestdlib.h
#include string.h
int main(int argc, char *argv[])
{
string s[] = {“abc”,”haha”,”no”};
for (int i=0; i3; i++)
{
printf(“%s\n”,s[i].c_str());
}
return 0;
}
原創文章,作者:SYTE,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/132597.html