找出一个字符串中,第一个只出现一次的字符
2014-07-31 11:19
387 查看
1、题目:找出一个字符串中,第一个只出现一次的字符,如“zzzxccddzzsfdg”为“x”
2、介绍两种方法法:逐个字符判断 和 使用strchr、strrchr
3、逐个字符判断:即按顺序统计字符串中的每一个字符出现的次数,若为1 ,则输出。
写成一个函数:
main函数中调用:
4、使用strchr(从前往后查找字符,返回该字符的地址)和strrchr(从后往前查找字符,返回该字符的地址),如果 调用这两个函数的返回值相同,则表示该字符在字符串中只出现一次。
2、介绍两种方法法:逐个字符判断 和 使用strchr、strrchr
3、逐个字符判断:即按顺序统计字符串中的每一个字符出现的次数,若为1 ,则输出。
写成一个函数:
char FindChar(char *pStr) { int reptCount = 0; for (unsigned int i = 0; i < strlen(pStr); i++) { reptCount = 0; for (unsigned int j = 0; j < strlen(pStr) && reptCount < 2; j++) { if (*(pStr + j) == *(pStr + i)) { reptCount++; } } if (reptCount == 1) { //printf("%c\n", *(pStr + i)); return *(pStr + i); } } return ' '; }
main函数中调用:
char str[] = "zzzxccddzzsfdg"; char chr = FindChar(str); if (chr != ' ') { printf("%s中第一个只出现一次的字符是:%c\n", str, chr); } else { printf("无匹配字符!\n"); }
4、使用strchr(从前往后查找字符,返回该字符的地址)和strrchr(从后往前查找字符,返回该字符的地址),如果 调用这两个函数的返回值相同,则表示该字符在字符串中只出现一次。
char word[] = "zzzxccddzzsfdg"; for(int i = 0; i < strlen(word); i++) { // 从前往后查找字符:strchr,从后往前查找字符:strrchr if(strlen(strchr(word, word[i])) == strlen(strrchr(word, word[i]))) { printf("%c\n", word[i]); break; } }
相关文章推荐
- 找出一个字符串中第一个只出现一次的字符
- [剑指Offer-字符串]请实现一个函数用来找出字符流中第一个只出现一次的字符。
- AS3 面试题35 在一个字符串中找出第一个只出现一次的字符
- 如何找出一个字符串中第一个只出现一次的字符
- 找出一个字符串中第一个只出现一次的字符
- 用最少的代码找出一个字符串中第一个不重复出现(即只出现一次)的字符
- 【C语言】找出一个字符串中第一个只出现一次的字符
- [剑指Offer-字符串]请实现一个函数用来找出字符流中第一个只出现一次的字符。
- 给定一个字符串,找出其中第一个只出现了一次的字符
- 【100题】找出一个字符串中第一个只出现一次的字符
- 在一个字符串中找到第一个只出现一次的字符
- 17、在一个字符串中找到第一个只出现一次的字符
- 在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b;
- 找出字符串中第一个只出现一次的字符
- 第十七题:在一个字符串中找到第一个只出现一次的字符。
- 在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。
- 16、JAVA 找出一个字符串中,第一个重复出现的字符
- 第17 题:题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。
- 在一个字符串中找到第一个只出现一次的字符
- 在一个字符串中找到第一个只出现一次的字符