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個同...