c字元陣列

2022-05-31 02:18:08 字數 3534 閱讀 8189

定義乙個長度為1000的字元陣列str[1000]

在定義 i=0,cnt=0;cnt用來記錄單詞的個數

while str[i]='\n'既輸入回車時結束字元的輸入

str[i]=0;設定結束的標誌

for i=0 to str[i]='\0'

if str[i]!=' '&&str[i+1]==' ';如果這個字元不為空格,並且下乙個字元為空格。

cnt++;讓cnt+1;

if str[i]!=' '&&str[i+1]=='\0'如果此字元為最後乙個字元且不為空格結尾。

cnt++;

輸出 cnt 的值表示單詞個數。

一開始**是這樣的,一開始沒有考慮到結尾是空格的情況,以為cnt 只會記錄到

倒數第一,然後讓最後輸出時cnt 在加上1即可。結果是錯的。

發現這個問題後我多加了乙個if 語句就解決末尾為空格的問題,和全部為空格的問題。

可是仍然出現了段錯誤和執行超時的問題。

後來我增加了陣列的長度就解決了。

首先定義變數 n z=0 sum =0 sum計算前17位的加權求和,z是sum %11 後的數

定義字元陣列 m [12] =;和陣列a [17] =;

a陣列用來表示權數。

輸入n的值, 表示判斷的身份證的個數。

定義 flag=2 用來判斷身份證號的準確性

定義乙個長度為18的字元陣列 line[18]

while (n) 即當n等於0的時候結束迴圈

getchar () 來存放之前輸入完n之後的回車。

for i=0 to i=17

輸入line [i]的值

for i=0 to i=17

if line[i] 不為數字,

則,flag=0;

if (flag) 當flag 不為0 的時候

sum=sum+(a[i]*(line[i]-'0')); 計算加權求和的總數sum

z=sum%11,

if (line[17]!=m[z]), 說明校驗碼不正確

flag=0;

if (flag==0) 輸出line 並讓 flag=1

在重新定義初值 sum=0;z=0; 判斷下乙個身份證號

n--

在while 的迴圈外判斷

if (flag==2) 說明以上身份證都正確 ,

則輸出all passed

我剛開始的時候沒有定義flag=2 直接讓 flag=1來判斷,可是在每次

判斷完乙個身份證後重新賦值時 會對是否輸出all passed產生影響

所以就 先讓flag=2 每次重新賦值時讓flag=1 ;就能夠解決了。

本題原先是出錯在,比知道兩個字元表示乙個漢字,

以為的是乙個字元表示乙個數字,結果輸出的答案不對

鄭佳亮我的** :

鄭佳亮的**:

我的**雖然更長兩行,但是我覺得我的想法會更好,我只用兩個判斷,就能夠滿足他四個判斷的效果,所以我覺得我的**會更好一些哦

在明確定義指標指向確切的某個位址時 ,指標相加才有意義

答:若是不賦初值給指標,指標會隨機指向乙個位址,這樣對程式會有危害,導致系統崩潰,停止執行。

void slipfloat(float x,int *intpart,float *fracpart)這句是指標變數作為形參,在主調函式中,將該變數的位址或者該變數的指標作實參,在被調函式中,用指標型別形參

接受該變數的位址,並改變形參所指向變數的值。

p= a;

或者 p= &a[0]; 表示陣列元素:p=a+1 或者 p=&a[1].

char *p

char line[80]

p = line; 其初始位置在基位址處

#includevoid link(char *p1,char *p2);

int main ()

,str[80];

char *p1=line,*p2=str;

int i=0;

while ((line[i]=getchar ())!='\n')

line[i]=0;

//getchar ();

i=0;

while ((str[i]=getchar ())!='\n')

str[i]='\0';

link(p1,p2);

puts(line);

return 0;

}void link(char *p1,char *p2)

if(i>=index)

}}

說實話,我也不知道好處是什麼,比較靈活吧

對於指標的運用還是不太熟悉,尤其是指標陣列的運用。

6-2 jmu-c-二維陣列轉置並按列排序

7-2 jmu-c-十進位制轉16進製制

7-3 jmu-c-輸出字元間的字元子串

7-4 陣列元素的刪除(15 分)

以上的題目錯了

6-2 jmu-c-二維陣列轉置並按列排序,這題在裝置的地方對於j 的範圍沒定義好,結果有重新裝置回去了

for(j=0;j我就在下面轉換前加了乙個條件,即可

7-2 jmu-c-十進位制轉16進製制 這題還是不懂怎麼做,還沒想出來,不過我到時有乙個取巧的辦法,用%x輸出

7-3 jmu-c-輸出字元間的字元子串 忘記了當時那裡卡住了,反正現在是做出來了

C字元陣列

c語言 的運算子無法操作字串。在c語言中把字串當作陣列來處理,因此,對字串的限制方式和對陣列的一樣,特別是,它們都不能用c語言的運算子進行複製和比較操作。1 字元陣列的賦值只能對其元素一一賦值。2 一定要理解賦值與初始化的區別 3 系統對字串常量也自動加乙個 0 作為結束符,有了結束標誌 0 後,字...

C 字元陣列

array 直接初始化 char 陣列是特殊的,這種初始化要記得字元是以乙個 null 結尾的。include using namespace std intmain int len sizeof a1 sizeof a1 0 printf 陣列a1長度為 d n len char a2 liuke...

C語言 陣列(字元陣列)

軟體中,文字處理比數字處理更重要,而處理文字時需要用到字串,所以掌握字串的知識很重要。字串一定有 0 結尾,只有以 0 結尾的字元陣列才能稱為字串。0 是字串的標誌,也是字串結束的標誌。一 字串的定義 char arr 10 char brr 5 不是字串,沒有 0 char crr 5 最後乙個元...