求字符串里里面字符出现的次数和出现哪些不同的字符的字符串
2016-10-12 11:40
113 查看
题目:
字符串里里面字符出现的次数和出现哪些不同的字符such as 字符串“aaaabbbccd” 打印出出现a4次,b3次,c2次,d1次,出现的不同字符的字符串为“abcd”,或者按照规则打印字符串“4a3b2c1d”
代码:
#include <stdio.h>#include <stdlib.h>
#include <string.h>
void getJustOnce(char* inputArray, char* outputArray, int length) {
bool result[26] = {0};
int i, j;
for (i = 0, j = 0; i < length; i++) {
if (result[inputArray[i] - 'a'] == false) {
result[inputArray[i] - 'a'] = true;
outputArray[j++] = inputArray[i];
}
}
outputArray[j] = '\0'; //记得一定要加上
}
void printCharCount1(char* inputArray, int length) {
int result[26] = {0};
int i, j;
for (i = 0; i < length; ++i) {
++result[inputArray[i] - 'a'];
}
for (j = 0; j < 26; ++j) {
if (result[j] != 0) {
char a = j + 'a';
printf("字符%c出现了%d次\n", a, result[j]);
}
}
}
void printCharCount2(char* inputArray,char* outputArray, int length) {
int result[26] = {0};
int i, j, k = 0;
char* s = (char *)malloc(length * sizeof(char));
for (i = 0; i < length; ++i) {
++result[inputArray[i] - 'a'];
}
for (j = 0; j < 26; ++j) {
if (result[j] != 0) {
char a = j + 'a';
sprintf(s, "%d", result[j]); //需要开辟内存
strcat(outputArray, s); //初始话需要为""
sprintf(s, "%c", a);
strcat(outputArray, s);
}
}
}
int main() {
char* inputArray = "aaaaaaaaaaaaaaaaaaaabbbccd";
int length = strlen(inputArray);
printf("字符串长度length:%d\n", length);
char* outputArray = (char *)malloc(length * sizeof(char));
getJustOnce(inputArray, outputArray, length);
printf("字符串里面不同的字符为:%s\n", outputArray);
printCharCount1(inputArray, length);
char resut[200] = "";
printCharCount2(inputArray, resut, length);
printf("字符串里面不同的字符以及次数按规则输出为:%s\n", resut);
return 0;
}
结果:
总结:
1、要用一个都是boo类型的数组,下标为字符串的值减去‘a’的值为下边来作为是否需要加入到另外一个数组里面去为条件2、要记还要用一个数组去接受,装进去,不要只想到用一个数组,这样思维受到了限制
相关文章推荐
- [每周一算法]统计在一个字符串中各个不同字符出现的次数
- Distinct Subsequences(不同子序列的个数)——b字符串在a字符串中出现的次数、动态规划
- 5个0,4个1组成的字符串中,出现01或10的次数为4的不同字符串个数
- 求一个文档里面某个字符或字符串出现的总次数
- 用js实现统计字符串里面的出现次数最多的字符
- 统计字符串里面数字,字母,其他字符的出现次数
- 从字符串中查找字符出现次数的方法和性能对比
- 取某个字符或字符串在另一个字符串中出现的次数的函数
- 输入一行字符串统计各字符出现的次数
- 从字符串中查找字符出现次数的方法和性能对比
- 去除一个字符串中出现的重复字符,并计算出出现最多次的字符的出现次数
- 找出字符串中字符出现次数最的字符
- 从控制台获取一串字符串,并对每个字符出现的次数进行统计
- 以字符串中出现次数最多的字符的个数为权值,对一个字符串数组进行升序排序
- 查找字符串中指定字符出现的次数:性能比较
- javascript统计字符串内字符出现次数
- EXCEL公式应用:求字符串内某字符出现的次数
- 对字符串中字符出现的次数进行排序
- 一个字符串里有一个字符出现次数超过1/2,求出该字符的O(n)时间,O(1)空间的算法(2008-06-30 09:58)
- 从字符串中查找字符出现次数的方法和性能对比