C語言字串問題,初學者求詳細解答

時間 2022-04-08 18:56:17

1樓:yx陳子昂

a[i++]是利用i++先取值後自加的特性,把迴圈變數i的自加整合到乙個語句裡面

拆開看就是 a[i] != '\0'; i=i+1; 這兩條語句。

這個迴圈就是把a 裡面沒有小寫字母轉換成大寫字母。

2樓:最大的寶寶

陣列a存放的是源字串,也就是使用者輸入的,待處理的串。b用於存放轉換後的xf。轉換時,用whilde迴圈對a的每乙個元素依次作出判斷,結果存放在b[i]。

a[i++]是兩個運算的組合,一是a[i],二是i++,這麼寫比較簡潔。所以源**中用a[i] != '\0'判斷沒有到達字串尾後,再i++以處理下乙個字元。

如果a[i]已經到了串尾,這個while迴圈也就結束了,於是繼續後面的printf。

3樓:果糖並不吃甜

首先,要先知道陣列的一些基礎知識,比如這段程式中的a[20],是乙個長度為20位元組的字元陣列,a[0]就是這個陣列中存放的第乙個字元,a[1]是第二個,a[ i ]是第i+1個。

這個do...while做的事情就是,從a陣列的第乙個字元開始,到最後乙個字元結束,判斷各個字元是否是小寫字母,如果是小寫字母,就把它變為相應的大寫字母。

i一開始定義為0,那麼第一次迴圈,a[i]就是a[0],迴圈內操作結束後,判斷a[0]的下乙個字元是否等於\0,如果是就跳出迴圈,如果不是就繼續,a[i++]相當於a[i=i+1],經過這一步,i變為1,再次進入迴圈,對a[1]進行迴圈內操作。

4樓:阿四哥

c語言字串的學習,輸入指定字串,並且計算字串的位數

c語言問題,求詳細解答,謝謝

5樓:

break就是跳出一層迴圈,如果你在三層他就跳到二層,二層就跳到一層;

continue不跳出迴圈,而是如果你在乙個迴圈的第i次中遇到了乙個continue,他就不管continue後面的語句,直接執行第i+1次迴圈,還是這一層迴圈。

6樓:

個人理解

break:跳出當前所在迴圈體(指的是for\while語句乙個整套迴圈結構)

continue: 結束本次迴圈,不跳出當前迴圈體,繼續下次迴圈b、break語句只能跳出最內層迴圈 其實說的就是迴圈體的意思 自己懂了意思最好

c語言問題求詳細解答,謝謝 25

7樓:穆詩

能正確編譯和執行了,不知可達到你要求,望採納!

#include

#include

#include

#define n 100

void printarray(int a,int n)void main(void)

{int a[n];

int i;

srand(time(null)); //initialize pseudo number seed

for (i=0; i

c語言題目求詳細解答 表示式~0x13的值是 a.0xffec b.0xff71 c.0xff68 d.0xff17

8樓:匿名使用者

0x是16進製制的數字

0x13換算成二進位制數是:10011

把10011補齊是:0000 0000 0001 0011然後按位取反是:1111 1111 1110 1100(呵呵,按位取反就是同一位上的0變1,1變0)

換算成16進製制: f f e c

所以:選擇 a

9樓:倒霉熊

~ 就是將 1變為0,0變為1

0x表示十六進製制

0x13 也就是 0x0013

0 0 1 3 對應的二進位制

0000 0000 0001 0011全部取反

1111 1111 1110 1100也就是f f e c答案是 a

10樓:匿名使用者

0x13=0000 0000 0001 0011b~0x13=1111 1111 1110 1100b=0xffec因此選a

按位取反運算子就是把每乙個二進位制位取反!

11樓:一公尺陽光鮑

0x13=0000 0000 0001 0011;

取反後 1111 1111 1110 1100;

=0xec;

取反,0變1,1變0.用多了就會了。

c語言問題,結果為什麼是一樣的?求詳細解答。

12樓:匿名使用者

#include

#define max 10

int a[max],i;

void sub1();

void sub2();

void sub3();

int main()

// 函式內變數填值 0 1 2 3 4

void sub2()

{int a[max],i,max;

max=5;

for(i=0;i

**給你注釋了, sub3 一直輸出的都是 全域性變數a陣列裡面的值

C語言初學者問題,C語言初學者問題

參考 如下 include int sum int a,int n int main include int sum int a,int n int main include int sum int n1,int n2,int n3,int n4 void main 首先你寫的就有點問題,給你解釋下...

c語言程式設計問題(初學者),C語言程式設計問題(初學者)

1 輸出字元型,並且希望顯示為字元,就用c,如果希望顯示的是數字,則用d,他們的對應關係可以檢視ascii表,2 int和char的大小不同,char 只1個位元組,int為4個位元組,也就是char 只有256個字元,而int則有2的32次方個數。表示的範圍是不同的 3 a和101的關係可以檢視a...

c語言的字串宣告問題,C語言的字串宣告問題

簡單說一下 字串陣列是用來存放字串的陣列,在記憶體中佔一段連續的單元。所佔記憶體存放的是字串。定義方法為 char a n n為常量表示式,可初始化。字元指標是指向字元的指標,所佔記憶體單元存放的是所指字元的記憶體單元。定義方法為 char p 完整的解答 1 字元陣列由若干個元素組成,每個元素中放...

C語言關於字串的問題,C語言關於字串的乙個問題。。

你函式的功能是去處非字母字元,也就是刪除空格個!應該輸出itis 字串是自動加上結束識別符號的 0 遇到這個停止,但是輸出列印出來螢幕上看不到 暈,其實很簡單,因為空格就是空格符不是終止符號 0 c為從輸入的資料中取出的乙個字元,不應該是字串。比較是通過ascii編碼比較的。a z對應的ascii編...

C語言字串陣列的問題,C語言字串陣列的問題

scanf 輸入時不能讀取空格鍵的,所以a儲存的是123,b儲存的是456,當然由於你是用 s輸入的,會自動在123後面加上 0 0是乙個字串的結尾 printf s n s n a i b i 這句只會輸出null int a max b max 這兩個整形陣列儲存的全是0,int的 0轉化為字元...