国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++中字符串查找操作的兩則實例分享

2020-05-23 14:08:55
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了C++中字符串的查找操作的兩則實例分享,分別是找到第一個只出現一次的字符以及找出連續最長的數字串的方法,需要的朋友可以參考下
 

在一個字符串中找到第一個只出現一次的字符
題目:

    在一個字符串中找到第一個只出現一次的字符。如輸入 abaccdeff,則輸出 b。

分析:

    一個字符串存儲的都是ASCII字符,其ASCII范圍不超過255。

    因此可以再創建一個255個元素的數組存儲字符串中字符出現的個數。

    通過兩次遍歷即可求得。

代碼實現(GCC編譯通過):

#include "stdio.h"#include "stdlib.h" //查找字符串中第一個只出現一次的字符char firstSingle(char * str); int main(void){  char str[] = "abaccdeff";  char tmp = firstSingle(str);  printf("%c/n",tmp);   return 0;} char firstSingle(char * str){  //ASCII表有255個字符,創建一個255個元素的映射數組初始為0  int asc[255] = {0};  int i;     //遍歷字符串,同時做字符的ASCII值映射到數組下標統計出現次數;  for(i=0;str[i]!='/0';i++)    asc[str[i]]++;   //再次遍歷,找到第一個出現一次的字符即為所求  for(i=0;str[i]!='/0';i++)    if(asc[str[i]] == 1)      return str[i];  //否則返回空  return '/0';}

注:

  •     這種值映射到下標是比較常見的一種方式,一些情況下避免了數組的遍歷。
  •     數組初始化可以使用函數:void *memset(void *s, int ch, sizet n);
  •     還可以使用指針實現。


在字符串中找出連續最長的數字串
題目:

寫一個函數,它的原形是 int continumax(char *outputstr,char *intputstr)

功能:

在字符串中找出連續最長的數字串,并把這個串的長度返回,

并把這個最長數字串付給其中一個函數參數 outputstr  所指內存。

例如:"abcd12345ed125ss123456789" 的首地址傳給 intputstr 后,函數將返回 9,

outputstr  所指的值為 123456789

題目也比較簡單,有一點需要注意

代碼實現(GCC編譯通過):

#include "stdio.h"#include "stdlib.h" int continumax(char * outputstr,char * inputstr); int main(void){  char *in = "abcd12345ed125dd123456789";  char *out = (char *)malloc(sizeof(char)*100);     int i = continumax(out,in);   printf("%d/n",i);  printf("%s/n",out);  return 0;} int continumax(char * outputstr, char * inputstr){  int len,max,i;  char *p;   len = max = 0;   //若寫成while(inputstr != '/0'),當字符串結尾出現最長數字串則無法處理  while(1)  {      if(*inputstr >= '0' && *inputstr <= '9')    {      len++;    }    else    {      if(len >max)      {        max = len;        p = inputstr - len;      }      len = 0;    }    if(*inputstr++ == 0)       break;  }   for(i = 0;i<max;i++)    *outputstr++ = *p ++;   *outputstr = '/0';   return max;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 克什克腾旗| 新平| 宜丰县| 延川县| 游戏| 岑溪市| 南城县| 化州市| 荣成市| 平泉县| 酉阳| 开江县| 大竹县| 获嘉县| 武穴市| 建湖县| 曲靖市| 博白县| 运城市| 东丰县| 阿坝| 林州市| 泽库县| 镇赉县| 庆城县| 旬阳县| 三明市| 兴城市| 嘉禾县| 东乌| 金阳县| 壤塘县| 龙川县| 宜章县| 大城县| 常德市| 施甸县| 克什克腾旗| 丹凤县| 顺昌县| 楚雄市|