C語言字串例題
C語言字串例題
第一題:函式實現字串兩端去除空格字元
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
/**
*有一個字串開頭或結尾含有n個空格 (” abcdefgdddd ”),
*欲去掉前後空格,返回一個新字串。
*要求1:請自己定義一個介面(函式),並實現功能;
*要求2:編寫測試用例。
*int trimSpace(char *inbuf, char *outbuf);
*/
/**
* func:實現字串的前後空格去除
* param:
* inbuf:輸入字串
* outbuf:輸出字串
* return:
* 錯誤返回1.正常執行返回0
*/
int trimSpace(char *inbuf, char *outbuf)
{
if (inbuf == NULL || outbuf == NULL)
{
return -1;
}
char *in = inbuf;
char *out = outbuf;
int length = strlen(in) - 1;
char *end = in + length;
while (isspace(*in))
{
in++;
}
while (isspace(*end))
{
end--;
}
length = end - in + 1;
strncpy(out, in, length);
return 0;
}
int main()
{
char buf[] = " abcdefgdddd ";
char bufOut[100] = { 0 };
trimSpace(buf, bufOut);
printf("bufOut = %s\n", bufOut);
printf("\n");
system("pause");
return 0;
}
第二題:程式設計實現每隔一位取字元子串
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
/**
* 有一個字串“1a2b3d4z”;
* 要求寫一個函式實現如下功能:
* 功能1:把偶數位字元挑選出來,組成一個字串1。
* 功能2:把奇數位字元挑選出來,組成一個字串2。
* 功能3:把字串1和字串2,通過函式引數,傳送給main,並列印。
* 功能4:主函式能測試通過。
* int getStr1Str2(char *source, char *buf1, char *buf2);
*/
int getStr1Str2(char *source, char *buf1, char *buf2)
{
if (source == NULL || buf1 == NULL || buf2 == NULL)
{
return - 1;//代表異常
}
char *src = source;
char *out1 = buf1;
char *out2 = buf2;
while (*src)
{
*out1++ = *src++;
*out2++ = *src++;
}
//最後給字串末尾新增0
*out1 = 0;
*out2 = 0;
return 0;
}
int main()
{
char buf[] = "1a2b3c4d";
char buf1[20];
char buf2[20];
getStr1Str2(buf, buf1, buf2);
printf("buf1 = %s\n", buf1);
printf("buf2 = %s\n", buf2);
printf("\n");
system("pause");
return 0;
}
第三題:鍵值對問題
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
//注: char* strstr(const char*src,const char* subsrc);返回字串第一次出現的位置
/**
* 鍵值對(“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 trimSpace(char *inbuf, char *outbuf);
int getKeyByValue(char *keyvaluebuf, char *keybuf, char *valuebuf, int * valuebuflen)
{
if (keyvaluebuf == NULL || keybuf == NULL || valuebuf == NULL || valuebuflen == NULL)
{
return -1;
}
//查詢pos第一次出現的位置
char* pos = strstr(keyvaluebuf, keybuf);
if (pos == 0)
{
return -2;//此時代表當前無此鍵
}
char* valuebufTmp = strstr(keyvaluebuf, "=")+1;
trimSpace(valuebufTmp, valuebuf);
*valuebuflen = strlen(valuebuf);
}
int trimSpace(char *inbuf, char *outbuf)
{
if (inbuf == NULL || outbuf == NULL)
{
return -1;
}
char *in = inbuf;
char *out = outbuf;
int length = strlen(in) - 1;
char *end = in + length;
while (isspace(*in))
{
in++;
}
while (isspace(*end))
{
end--;
}
length = end - in + 1;
strncpy(out, in, length);
*(out + length) = 0;
return 0;
}
int main()
{
char valuebuf[20];
int valuebuflen = 0;
getKeyByValue("key1 = valude1 ", "key1", valuebuf, &valuebuflen);
printf("value = %s\n", valuebuf);
printf("valuebuflen = %d\n", valuebuflen);
printf("\n");
system("pause");
return 0;
}
相關文章
- C語言字串C語言字串
- C語言 - 字串拼接C語言字串
- C語言_入門例題_PAGE1C語言
- C語言例題19:折半插入排序C語言排序
- C語言課程訓練系統題-字串cquptC語言字串
- C語言知識彙總 | 51-C語言字串指標(指向字串的指標)C語言字串指標
- C語言進階[2]:字串常量C語言字串
- C語言sizeof()變數、字元、字串C語言變數字元字串
- 每日一題:C語言經典例題之雞兔同籠每日一題C語言
- C語言學習之:指標與字串C語言指標字串
- 【每週例題】力扣 C++ 字串相乘力扣C++字串
- C語言趣味程式設計100例pdfC語言程式設計
- c語言程式設計題C語言程式設計
- 主元素問題(C語言)C語言
- 關於c語言輸入字串的總結C語言字串
- C語言相關的基礎字串函式C語言字串函式
- GO語言————4.6 字串Go字串
- C語言:判斷一個字串是否為迴文C語言字串
- c語言字串與整形,浮點數...相互轉換C語言字串
- C語言-字串函式的實現(五)之strstrC語言字串函式
- C語言-字串函式的實現(一)之strlenC語言字串函式
- 16.C語言錯題整理C語言
- C語言解決排序問題C語言排序
- 刷題記錄(C語言)01C語言
- C語言結構體專題C語言結構體
- C語言的考試題型C語言
- C語言例項解析精粹學習筆記——19C語言筆記
- 【乾貨】200個c語言例項的yuan碼C語言
- 程式設計中的遞迴(C語言為例)程式設計遞迴C語言
- C語言C語言
- C 語言整數與字串的相互轉換介紹字串
- C語言:利用指標檢查字串是否是迴文C語言指標字串
- 題解1196:去掉空格 (C語言描述)C語言
- C語言常見使用問題2C語言
- C語言考試題及答案(一)C語言
- C語言指標常見問題C語言指標
- 【C語言練習題】小球反彈問題C語言
- 聊聊C語言/C++—程式和程式語言C語言C++