编写一个函数,接收一个字符串,统计其中数字字符个数及字母字符个数。函数原型为:void fun(const char *str, int* char_N, int* letter_N)用c语言
时间: 2023-12-29 10:02:38 浏览: 111
以下是一个简单的 C 语言函数,实现了对字符串中数字字符和字母字符的计数:
```c
void fun(const char *str, int* char_N, int* letter_N) {
int len = strlen(str);
*char_N = 0;
*letter_N = 0;
for (int i = 0; i < len; i++) {
char c = str[i];
if (isdigit(c)) {
(*char_N)++;
} else if (isalpha(c)) {
(*letter_N)++;
}
}
}
```
函数中,我们首先将 char_N 和 letter_N 的初始值都设为 0。然后,我们使用一个 for 循环遍历字符串中的每一个字符,对于每一个字符,判断它是数字字符还是字母字符。如果是数字字符,就将 char_N 计数器加 1;如果是字母字符,就将 letter_N 计数器加 1。最后,我们将 char_N 和 letter_N 的值通过指针返回即可。
相关问题
3.编写一个函数,接收一个字符串,统计其中数字字符个数及字母字符个数。函数原型为:void fun(const char *str,int* char Ner_N);
好的,我来编写这个函数。根据题目描述,我们需要遍历整个字符串,统计其中数字字符和字母字符的个数,并将它们分别存储到两个指针所指向的变量中。
以下是我编写的代码:
```c++
void fun(const char *str, int* charNum, int* numNum) {
int len = strlen(str);
*charNum = 0;
*numNum = 0;
for (int i = 0; i < len; i++) {
if (isalpha(str[i])) {
(*charNum)++;
} else if (isdigit(str[i])) {
(*numNum)++;
}
}
}
```
首先,我们定义了两个指针参数`charNum`和`numNum`,用于存储字母字符和数字字符的个数。为了避免指针未初始化的问题,我们将它们初始化为0。
接下来,我们使用`strlen`函数获取字符串的长度,以便后续的遍历操作。
然后,我们使用一个循环遍历整个字符串。对于每个字符,我们使用`isalpha`和`isdigit`函数判断它是字母字符还是数字字符,并将相应的计数器加1。
最后,我们将计数器的值存储到指针所指向的变量中。
希望这个函数能够满足你的需求!
编写一个函数,接收一个字符串,统计其中数字字符个数及字母字符个数。函数原型为:void fun(const char *str, int* char_N, int* letter_N);
以下是函数的实现代码:
```c++
void fun(const char *str, int* char_N, int* letter_N) {
*char_N = 0;
*letter_N = 0;
for (int i = 0; str[i] != '\0'; i++) {
if (isdigit(str[i])) {
(*char_N)++;
}
else if (isalpha(str[i])) {
(*letter_N)++;
}
}
}
```
函数中使用了指针来获取统计结果,将数字字符个数存储在`char_N`指针指向的变量中,将字母字符个数存储在`letter_N`指针指向的变量中。在函数内部使用循环遍历字符串中的每个字符,当字符是数字字符时,数字字符个数加一;当字符是字母字符时,字母字符个数加一。
使用示例:
```c++
#include <iostream>
#include <cstring>
using namespace std;
void fun(const char *str, int* char_N, int* letter_N);
int main() {
const char *str = "Hello, 123!";
int char_N, letter_N;
fun(str, &char_N, &letter_N);
cout << "字符中数字字符个数:" << char_N << endl;
cout << "字符中字母字符个数:" << letter_N << endl;
return 0;
}
void fun(const char *str, int* char_N, int* letter_N) {
*char_N = 0;
*letter_N = 0;
for (int i = 0; str[i] != '\0'; i++) {
if (isdigit(str[i])) {
(*char_N)++;
}
else if (isalpha(str[i])) {
(*letter_N)++;
}
}
}
```
输出结果:
```
字符中数字字符个数:3
字符中字母字符个数:8
```
阅读全文