编写函数:把一个字符串中的非数字字符取出,生成一个新的字符串。 函数接口定义: void fun(char *s);
时间: 2024-02-20 17:57:05 浏览: 62
以下是实现该函数的代码:
```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'; // 把数字字符后面的部分截断
}
```
函数的实现思路是遍历字符串,如果当前字符不是数字字符就把它放到数字字符的后面,最后把数字字符后面的部分截断即可。
编写函数:把一个字符串中的数字字符取出,生成一个新的字符串。 函数接口定义: 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'; // 把数字字符后面的部分截断
}
```
函数的实现思路与上一个问题的函数类似,不同之处在于这里把数字字符取出来,放到字符串的前面。
阅读全文