题目描述 编写函数:把一个字符串中的非数字字符取出,生成一个新的字符串。 函数接口定义: void fun(char *s); 其中s是用户传入的参数。 函数fun的功能是把指针s所指字符串中的所有数字字符取出,并重新放回s中。 #include <stdio.h> //函数实现写在这里 int main() { char item[80]; gets(item); fun(item); printf("%s\n",item); return 0; } 样例输入 复制 as12fg 样例输出 复制 12
时间: 2024-02-20 18:58:06 浏览: 26
以下是实现该功能的代码:
```c
#include <stdio.h>
#include <ctype.h>
void fun(char *s) {
char *p = s; // p指向s的首地址
while (*s) {
if (isdigit(*s)) { // 如果是数字字符,就放到p指向的位置
*p++ = *s;
}
s++;
}
*p = '\0'; // 在p指向的位置放置字符串结束符
}
int main() {
char item[80];
gets(item);
fun(item);
printf("%s\n",item);
return 0;
}
```
实现思路:
1. 定义两个指针:s和p,初始时都指向s的首地址。
2. 用while循环遍历字符串s中的每个字符。
3. 如果字符是数字字符,就把它放到p指向的位置,然后p向后移动一位。
4. 最后在p指向的位置放置字符串结束符'\0'。
5. 函数执行完毕后,原字符串s中只剩下数字字符,其他非数字字符被去除了。
相关问题
编写函数:把一个字符串中的非数字字符取出,生成一个新的字符串。 函数接口定义: void fun(char *s);
以下是实现该函数的代码:
```c
#include <stdlib.h>
#include <string.h>
void fun(char *s) {
int len = strlen(s);
char *new_str = (char*)malloc(sizeof(char) * (len + 1)); // 申请新字符串的内存空间
int j = 0; // 记录新字符串的位置
for (int i = 0; i < len; i++) {
if (s[i] < '0' || s[i] > '9') { // 如果不是数字字符
new_str[j++] = s[i]; // 把它放到新字符串中
}
}
new_str[j] = '\0'; // 在新字符串末尾添加'\0'
strcpy(s, new_str); // 把新字符串复制回原字符串
free(new_str); // 释放新字符串的内存空间
}
```
函数的实现思路是先申请一个新字符串的内存空间,然后遍历原字符串,把非数字字符放到新字符串中。最后把新字符串复制回原字符串,并释放新字符串的内存空间。
编写函数:把一个字符串中的非数字字符取出,生成一个新的字符串。 函数接口定义: void fun(char *s); 其中s是用户传入的参数。 函数fun的功能是把指针s所指字符串中的所有数字字符取出,并重新放回s中。
以下是实现该函数的代码:
```c
void fun(char *s) {
int j = 0; // 记录数字字符的位置
for (int i = 0; s[i] != '\0'; i++) {
if (s[i] < '0' || s[i] > '9') { // 如果不是数字字符
s[j++] = s[i]; // 把它放到数字字符后面
}
}
s[j] = '\0'; // 把数字字符后面的部分截断
}
```
函数的实现思路是遍历字符串,如果当前字符不是数字字符就把它放到数字字符的后面,最后把数字字符后面的部分截断即可。
相关推荐
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)