c語言提高(第二次作業)

2022-09-03 23:54:16 字數 3734 閱讀 8662

1. 畫出字串一級指標記憶體四區模型

#include

#include

int main(void)

2. 有乙個字串開頭或結尾含有n個空格 (」 abcdefgdddd 」),欲去掉前後空格,返回乙個新字串。

要求1:請自己定義乙個介面(函式),並實現功能;

要求2:編寫測試用例。

功能:獲取非空字串

outbuf:非空字串buf首位址

返回值:

成功:0

失敗:非0

int trimspace(char *inbuf, char *outbuf);

//從右往左移動,如果當前字元為空

while (p[end] == '

' && end > 0

)if (end == 0

)n = end - begin + 1; //

非空元素個數

strncpy(outbuf, p +begin, n);

outbuf[n] = 0

;return0;

}

3. 有乙個字串「1a2b3d4z」;

要求寫乙個函式實現如下功能:

功能1:把偶數字字元挑選出來,組成乙個字串1。

功能2:把奇數字字元挑選出來,組成乙個字串2。

功能3:把字串1和字串2,通過函式引數,傳送給main,並列印。

功能4:主函式能測試通過。

int getstr1str2(char *source, char *buf1, char *buf2);

#define _crt_secure_no_warnings

#include

#include

#include

/*有乙個字串「1a2b3d4z」;

要求寫乙個函式實現如下功能:

功能1:把偶數字字元挑選出來,組成乙個字串1。

功能2:把奇數字字元挑選出來,組成乙個字串2。

功能3:把字串1和字串2,通過函式引數,傳送給main,並列印。

功能4:主函式能測試通過。

int getstr1str2(char *source, char *buf1, char *buf2) 

//如果是偶數字

else

}return0;

}int

main() ;

char buf2[50] = ;

int ret = 0

;ret =getstr1str2(p, buf1, buf2);

if (ret != 0

) printf(

"buf1=%s\n

", buf1);

printf(

"buf2=%s\n

", buf2);

printf("\n

");system(

"pause");

return0;

}

4. 鍵值對(「key = value」)字串,在開發中經常使用

要求1:請自己定義乙個介面,實現根據key獲取.

要求2:編寫測試用例。

要求3:鍵值對中間可能有n多空格,請去除空格

注意:鍵值對字串格式可能如下:

"key1 = value1"

"key2 = value2"

"key3 = value3"

"key4 = value4"

"key5 = "

"key6 ="

int getkeybyvalue(char *keyvaluebuf, char *keybuf, char *valuebuf, int * valuebuflen);

int main(void)

#define _crt_secure_no_warnings#include

#include

#include

#include

int trimspace(char *inbuf, char *outbuf)

//從右往左移動,如果當前字元為空

while (p[end] == '

' && end > 0

)

if (end == 0

)

n = end - begin + 1; //

非空元素個數

strncpy(outbuf, p +begin, n);

outbuf[n] = 0

;

return0;

}int getkeybyvalue(char *keyvaluebuf, char *keybuf, char *valuebuf, int *valuebuflen)

char *p =null;

int ret = 0

;

//查詢匹配鍵值

//"key4= value4"找key4,找到返回首位址

p =strstr(keyvaluebuf, keybuf);

if (p ==null)

//如果找到,重新設定起點位置,跳過「key4」

//p="= value4"

//"key4= value4"->"= value4"

p = p +strlen(keybuf);

//查詢=

p = strstr(p, "="

);

if (p ==null)

//如果找到,重新設定起點位置,跳過「=」

//p=" value4"

//"= value4"->"= value4"

p = p + strlen("="

);

//取非空字元

ret =trimspace(p, valuebuf);

if (ret != 0

)

//獲取長度,通過*間接賦值

*valuebuflen =strlen(valuebuf);

return0;

}int

main() ;

int len = 0

;

int ret = 0

;

ret = getkeybyvalue(keyval, key, value, &len);

if (ret != 0

) printf(

"val:%s\n

", value);

printf(

"len:%d\n

", len);

#if 0

char p = "

1a2b3d4z";

char buf1[50] = ;

char buf2[50] = ;

int ret = 0

;

ret =getstr1str2(p, buf1, buf2);

if (ret != 0

) printf(

"buf1=%s\n

", buf1);

printf(

"buf2=%s\n

", buf2);

#endif

printf("\n

");system(

"pause");

return0;

}

C語言 第二次作業

在本章中對迴圈的內容進行了加深訓練,學習了一種解決問題的方法迴圈巢狀,也學到了偽 的運用,在描述演算法是運用偽 往往能然閱讀者更能明白 的功能。目前對偽 的運用還不是很熟練,用偽 描述演算法也有點不習慣 總分 290 從讀入的整數資料中,統計大於零的整數個數和小於零的整數個數。用輸入零來結束輸入,程...

c語言第二次作業

includeint main void printf d d d d d a,b,c,d,e 設計思路 這道題目要求我們統計學生成績並且用五分制來判別人數,顯而易見的我們應該用 迴圈來解決這個問題,並且在迴圈中利用判斷語句來執行要求。第一步 了解題目大致含義 第二步 構建合適的演算法體系 第三步 ...

c語言第二次作業

includeint main void else if x 80 else if x 70 else if x 60 else printf d d d d d n a,b,c,d,e return0 二 設計思路 1 編譯預處理令,定義主函式。2 定義變數n,i,x。3 利用for迴圈輸入n個同...