1樓:會飛的小兔子
c語言字串陣列中的每一個元素均為指標,即有諸形如「ptr_array[i]」的指標。由於陣列元素均為指標,因此ptr_array[i]是指第i+1個元素的指標。
例:如二維指標陣列的定義為:char *ptr_array[3]=,,};
擴充套件資料
字串陣列陣列元素表示方法:
陣列元素的一般形式為:陣列名[下標] 其中的下標只能為整型常量或整型表示式。如為小數時,c編譯將自動取整。
例如,a[5],a[i+j],a[i++]都是合法的陣列元素。陣列元素通常也稱為下標變數。必須先定義陣列, 才能使用下標變數。
在c語言中只能逐個地使用下標變數, 而不能一次引用整個陣列。
2樓:金牛多弗朗明哥
方法1, 使用指標陣列:
#include
#include
#include
int main()
;int i=0;
while(strcmp(test[i], " ") != 0)
puts(test[i++]);
system( "pause ");
return 0;
}這個方法比較簡單, 但是問題是這樣的話,字串是常量,無法修改。當然這個問題也可以解決, 比如使用陣列賦值, 然後將 char 陣列首地址賦值給某一個指標即可。
方法2,使用2維陣列:
#include
#include
#include
int main()
;int i=0;
while(strcmp(test[i], " ") != 0)
puts(test[i++]);
system( "pause ");
return 0;
}這樣的話, 問題就是 空間的浪費!
3樓:華光高科
10.3.1-c程式設計基礎-字元陣列與字串
4樓:匿名使用者
char username[n][4]=;
n是字串的個數
c語言中如何定義字串?
5樓:yangzhi涯
可以用陣列或指標
陣列:char s[80]="abcd";或者char s[80]=; /*說明:自動加字串結束標誌:\0*/
char s[80]=;
指標:char *s;char*s="abcd";
c語言是一門通內用計算機程式設計容語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。
儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規格寫出的c語言程式可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱mcu)以及超級電腦等作業平臺。
二十世紀八十年代,為了避免各開發廠商用的c語言語法產生差異,由美國國家標準局為c語言訂定了一套完整的國際標準語法,稱為ansi c,作為c語言最初的標準。
6樓:匿名使用者
一維和二維的都可以;
一維的情況如下:
1,char string0[10];
2,char string1="prison break";
3,char string2[100]="michael scofield";
1句表示定義個長度為10的字串,但回未賦值,2句表示定義了一答個字元陣列string1,並進行初始化,使得其長度自動為13(字串」prison break"中的字元個數加上結尾的'\0'),3句定義了一個有100個元素的字元陣列string2,並初始化了17個元素("michael scofield";加上結尾的'\0');
二維的情況如下:
1,char string3[6][30];
2,char string3[6][30]=;
此句表示有6個字串,每個字串的長度為30,每個字串的初始值與「joy","phosee","monses","chandele","ross","rather"相對應;
7樓:天雲一號
可以通過字元陣列或字元指標來定義字串,也可以用巨集定義對常量字串進版
行定義。
下面通過權
舉例來分別進行說明:
char str1 = "helloworld"; // 通過字元陣列來定義字串"helloworld",陣列中每個儲存單元存放一個字元
char *str2 = "helloworld"; // 通過字元指標來定義字串"helloworld",指標str2指向一個存放字串"helloworld"的連續地址單元的首地址
#define str3 "helloworld"; // 通過巨集定義來定義字串"helloworld",等價於str3="helloworld"
8樓:閃喆黃馨
c語言每個字串後面都有一個\0作為結尾,你的b沒有\0作為字串結尾,所以後面記憶體中的內容都一起顯示了
在你的for迴圈結束以後加一個b[t]
='\0'
9樓:簡聖祭蓓
因為字串是以'\0'結尾的哈,再則你定義的字串長度是80哈,如果沒到指定的長度,系統會自動補充的,就正如你的程式執行效果;有一下的解決方法:
1.拷貝後,在字串末尾新增'\0';
2.輸入你指定的字串長度哈
10樓:告煦賀皓
字串結尾有一個'\0'。strlen(string)只計算實際長度,不計算'\0'.這導致你的for迴圈沒有複製'\0',導致b沒有結束標誌,於是就出現了那麼多的「燙」。
修改方法:t=
strlen(a)+1;
11樓:初人江驥
for(i=0;i<=t;i++)
這個t只包含總得字元個數,沒包含最後的結束符,把它也傳給b就好了
12樓:匿名使用者
用字元陣列或者string定義
13樓:匿名使用者
char * a = "字串";
如何定義定義的字串,C語言中如何定義字串?
定義的字串 可以通過字元陣列或字元指標來定義字串,也可以用巨集定義對常量字串進行定義。下面通過舉例來分別進行說明 char str1 helloworld 通過字元陣列來定義字串 helloworld 陣列中每個儲存單元存放一個字元 char str2 helloworld 通過字元指標來定義字串 ...
c語言輸出字串陣列出現亂碼,C語言陣列輸出出現亂碼
c語言字串以 0 結尾,如果不以該符號結尾則輸出 s時會出錯,程式一直往存放字串的地址訪問。而你的程式中並沒有賦 0 給那兩個陣列,所以會出現亂碼。沒有出現亂碼的陣列是因為你初始化了,初始化時編譯器會給它加上 0 符號。include int main void c語言中字串以 0 結尾,你這樣迴圈...
c語言字串長度如何數,C語言字串長度如何數?
1 首先開啟vs2014,新建一個專案。2 然後我們根據圖示 新建一個main函式。3 然後我們根據圖示 新增標頭檔案。4 然後我們根據圖示 新增main函式。5 然後我們根據圖示 定義int變數len。6 然後我們根據圖示 定義char型別變數str。7 然後我們根據圖示 使用scanf給str賦...