請編寫函數,在一個字符串中進行搜索,查找所有在一個給定字符集合中出現的字符。
為牟平等地區用戶提供了全套網頁設計制作服務,及牟平網站建設行業解決方案。主營業務為成都網站制作、成都網站設計、牟平網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
接口如下: char *find_char (char const *source, char const * chars)
例如souce = “ABCDEF”, chars = "XYZ"或者"JURY"就返回NULL
如果chars = “XRCQEF” 返回指向C字符的指針
char* find_char(char const *str, char const *chars)
{char *cp;
//判空
if(str != NULL && chars != NULL) {for (;*str != '\0'; str++) {//遍歷str
for (cp = chars; *cp != '\0'; cp++) {if(*str == *cp)
return str;
}
}
}
//沒找到,返回NULL
return NULL;
}
例題2編寫函數,刪除字符串的一部分,如果substr是str的子串,就刪除掉str中substr部分
例如str = “ABCDEFG” substr=“CDE” 那么刪除后str="ABFG"并且函數返回1
如果不是子串,就不修改str,函數返回-1
int del_substr(char *str, char const *substr)
char *match(char *begin, char const *substr) {
//從begin的位置依次盡心判斷是否子串與主串匹配
while (*substr != '\0')
if(*substr++ != *begin++)
return NULL;
return begin; //此時begin已經改變了,是主串中子串的下一個元素位置
}
int del_substr(char *str, char const *substr)
{
char *next;
//首先找一下源字符串中匹配子字符串的位置
//肯定要遍歷一遍str
while (*str != '\0') {
next = match(str, substr);
if (next != NULL)
break;
str++; //遍歷下一個元素
}
if (str == '\0') return -1; //沒有找到 直接返回
//找到了,next就是開始的指針,進行賦值
while (*str++ = *next++)
;
return 1;
}
例題三實現reverse_string(),原地修改,不創建數組
void reverse_string (char * s)
{
char * a = s;
char tmp;
while (*a) a++;
a--; //最后一個字符
while (s<= a) {
*s = tmp;
tmp = *a;
*a = *s; //交換首位字符
s++;
a--;
}
}
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
文章題目:C語言必知-指針練習題(附答案)-創新互聯
網頁鏈接:http://vcdvsql.cn/article34/pjspe.html
成都網站建設公司_創新互聯,為您提供網站內鏈、App設計、網站改版、企業建站、Google、網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯