这道题的要求是实现一个名为change的函数,其输入参数为一个字符指针s和一个整型指针p。函数的功能是将字符串s中的数字字符转换成数字,并存储到一维整型数组p中,最后返回转换后数字字符的个数。
时间: 2024-04-30 07:19:40 浏览: 62
这道题可以通过遍历字符串s中的每一个字符,判断其是否为数字字符,如果是则将其转换成数字并存储到数组p中。最后返回转换后数字字符的个数即可。
以下是一个可能的实现:
```c++
int change(char *s, int *p) {
int count = 0;
for (int i = 0; s[i] != '\0'; i++) {
if (isdigit(s[i])) { // 判断是否为数字字符
p[count++] = s[i] - '0'; // 转换成数字并存储到数组p中
}
}
return count; // 返回转换后数字字符的个数
}
```
其中,isdigit函数判断一个字符是否为数字字符,返回值为非零值表示是数字字符,返回值为零表示不是数字字符。'0'-'9'的ASCII码值连续,所以可以通过减去'0'得到对应的数字值。
相关问题
请用指针编程实现:编写函数change(char *s,int *p),将字符串s中的数字字符转换成数字存储到整型数组p中,函数返回转换后的数字的个数。
下面是实现代码:
```c
int change(char *s, int *p)
{
int count = 0;
while (*s != '\0') {
if (*s >= '0' && *s <= '9') {
*p = *s - '0';
p++;
count++;
}
s++;
}
return count;
}
```
其中,`s` 是字符串的指针,`p` 是整型数组的指针。`count` 记录转换后的数字的个数,初始值为 0。使用循环遍历字符串中的每个字符,如果是数字字符,则将其转换成数字存储到整型数组中,同时 `p` 指针向后移动,`count` 值加 1。最后返回 `count` 即可。
C语言编写函数change(char*s,int*p),将字符串s中的数字字符转换成数字存储到整型数组p中,函数返回转化后的数字的个数
以下是实现change函数的示例代码:
```c
int change(char* s, int* p) {
int count = 0;
while (*s != '\0') {
if (*s >= '0' && *s <= '9') {
*p++ = *s - '0'; // 将数字字符转换成数字存储到整型数组p中
count++;
}
s++;
}
return count;
}
```
该函数的参数是一个指向字符串s的指针和一个指向整型数组p的指针。函数通过遍历字符串s,将其中的数字字符转换成数字存储到整型数组p中,并返回转化后的数字的个数。
具体实现中,使用while循环遍历字符串s,当遍历到数字字符时,将其转换成数字后存储到整型数组p中,并将数字个数加1。最后返回数字个数count即可。
阅读全文