1.编写一函数实现对起始地址是a,长度是n的整型数组从小到大排序。函数原型为:void sort(int *a, int n); 2.编写一个函数,接收一个字符串,统计其中任意两个及两个以上相邻字符相同的子串的个数。比如字符串"abbcccaddd"子串有"bb"、"cc"、"cc"、"dd"、"dd"、"ccc"和"ddd",共7个。函数原型为:int fun(const char *str); 3.编写一个函数,接收一个字符串,统计其中数字字符个数及字母字符个数。函数原型为:void fun(const char *str, int* char_N, int* letter_N);
时间: 2023-07-19 18:10:20 浏览: 57
好的,我可以回答你的问题。
1. 实现对整型数组从小到大排序的函数可以使用冒泡排序算法,代码如下:
```C++
void sort(int *a, int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (a[j] > a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
```
2. 统计子串个数的函数可以使用双重循环,在内循环中判断相邻字符是否相同,如果相同则计数器加一。代码如下:
```C++
int fun(const char *str) {
int cnt = 0;
int len = strlen(str);
for (int i = 0; i < len; i++) {
for (int j = i + 1; j < len; j++) {
if (str[j] == str[j - 1]) {
cnt++;
} else {
break;
}
}
}
return cnt;
}
```
3. 统计数字字符个数和字母字符个数的函数可以使用循环遍历字符串,判断每个字符是否为数字或字母,如果是则对应计数器加一。代码如下:
```C++
void fun(const char *str, int* char_N, int* letter_N) {
*char_N = 0;
*letter_N = 0;
int len = strlen(str);
for (int i = 0; i < len; i++) {
if (isdigit(str[i])) {
(*char_N)++;
} else if (isalpha(str[i])) {
(*letter_N)++;
}
}
}
```
希望以上答案能对你有所帮助!