任意输入一字符串,提取该字符串中的非字母和数字字符构成新串并返回给调用函数输出。c语言
时间: 2023-12-26 12:03:27 浏览: 120
可以使用标准库函数isalnum()来判断一个字符是否为字母或数字,然后遍历字符串,将非字母和数字的字符拼接成新的字符串即可。
示例代码如下:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
void extract_non_alnum(char *str, char *result) {
int i, j;
int len = strlen(str);
for (i = 0, j = 0; i < len; i++) {
if (!isalnum(str[i])) {
result[j++] = str[i];
}
}
result[j] = '\0';
}
int main() {
char str[100] = "abc123!@#def456";
char result[100];
extract_non_alnum(str, result);
printf("Original string: %s\n", str);
printf("Extracted string: %s\n", result);
return 0;
}
```
输出结果为:
```
Original string: abc123!@#def456
Extracted string: !@#
```
相关问题
任意输入一字符串,提取该字符串中的非字母和数字字符构成新串并返回给调用函数输出,请帮我编写一个这样的C语言程序
以下是一个简单的C语言程序,可以提取字符串中的非字母和数字字符构成新串并返回给调用函数输出:
```c
#include <stdio.h>
#include <ctype.h>
void extract_non_alnum(char *str, char *result) {
int i, j = 0;
for (i = 0; str[i] != '\0'; i++) {
if (!isalnum(str[i])) {
result[j++] = str[i];
}
}
result[j] = '\0';
}
int main() {
char str[100], result[100];
printf("请输入一个字符串:\n");
scanf("%s", str);
extract_non_alnum(str, result);
printf("非字母和数字字符为:%s\n", result);
return 0;
}
```
程序中的 `extract_non_alnum()` 函数用于提取字符串中的非字母和数字字符,并将结果存储在 `result` 字符数组中。该函数使用了 `ctype.h` 头文件中的 `isalnum()` 函数判断字符是否为字母或数字。程序中的 `main()` 函数用于获取用户输入的字符串,调用 `extract_non_alnum()` 函数,并将结果输出。
可以用C写任意输入一字符串,提取该字符串中的非字母和数字字符构成新串并返回给调用函数输出?
可以使用C语言中的字符处理函数和循环结构来实现该功能。具体代码如下:
```c
#include <stdio.h>
#include <ctype.h>
char *extract_non_alnum(char *str, char *new_str) {
int i, j = 0;
for (i = 0; str[i] != '\0'; i++) {
if (!isalnum(str[i])) {
new_str[j++] = str[i];
}
}
new_str[j] = '\0';
return new_str;
}
int main() {
char str[100], new_str[100];
printf("请输入字符串:");
scanf("%s", str);
printf("非字母和数字字符为:%s\n", extract_non_alnum(str, new_str));
return 0;
}
```
代码中先定义了一个 `extract_non_alnum` 函数,该函数接受两个参数:一个输入字符串 `str` 和一个输出字符串 `new_str`。函数通过循环遍历输入字符串中的每个字符,如果该字符不是字母或数字,则将其添加到输出字符串中。最后返回输出字符串。
在 `main` 函数中,首先提示用户输入字符串,并使用 `scanf` 函数读取。然后调用 `extract_non_alnum` 函数提取非字母和数字字符,并输出结果。
注意,在使用 `scanf` 函数读取字符串时,如果字符串中包含空格,那么只会读取空格之前的部分。如果需要读取整个字符串,可以使用 `fgets` 函数。
阅读全文