c语言抽取名字源码
时间 : 2024-01-13 00:20:03声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

最佳答案
以下是一个简单的C语言程序,可以从输入的字符串中抽取出名字。
```c
#include <stdio.h>
#include <ctype.h>
#define MAX_NAME_LENGTH 50
void extractNames(const char *str) {
int i = 0;
while (str[i] != '\0') {
// 如果遇到字母或下划线则开始抽取名字
if (isalpha(str[i]) || str[i] == '_') {
char name[MAX_NAME_LENGTH + 1]; // 用于存储抽取出的名字
int j = 0;
// 继续往后遍历直到遇到非字母、数字或下划线的字符
while (isalpha(str[i]) || isdigit(str[i]) || str[i] == '_') {
// 限制名字长度不超过最大长度
if (j < MAX_NAME_LENGTH) {
name[j] = str[i];
j++;
}
i++;
}
name[j] = '\0'; // 在名字字符串末尾加上结束符
// 打印抽取出的名字
printf("Name: %s\n", name);
} else {
i++;
}
}
}
int main() {
char str[1000];
printf("请输入字符串:");
fgets(str, sizeof(str), stdin);
extractNames(str);
return 0;
}
上述程序通过遍历输入的字符串,当遇到字母或下划线时,开始抽取名字。在遍历过程中,只要遇到非字母、数字或下划线的字符,就停止抽取,将抽取到的名字打印出来。
你可以将你想要抽取名字的字符串输入到程序中,程序将会输出抽取出的名字。请注意,名字的长度不能超过50个字符,否则会被截断。
其他答案
以下是一个用C语言编写的名字抽取程序的示例代码:
```c
#include <stdio.h>
#include <string.h>
void extractNames(char *text) {
int i, j, count = 0;
char names[100][50]; // 假设最多有100个名字,每个名字最多有50个字符
// 检查每个单词,判断是否符合名字的条件
for(i = 0; i < strlen(text); i++) {
// 找到单词的开头
if((i == 0 || text[i - 1] == ' ') && text[i] >= 'A' && text[i] <= 'Z') {
// 提取名字
j = 0;
while(text[i] != ' ' && text[i] != '\0') {
names[count][j] = text[i];
i++;
j++;
}
names[count][j] = '\0';
count++;
}
}
// 打印提取到的名字
printf("提取到的名字有:\n");
for(i = 0; i < count; i++) {
printf("%s\n", names[i]);
}
}
int main() {
char text[] = "Hello, World! My name is John Doe. Nice to meet you.";
extractNames(text);
return 0;
}
上述代码定义了一个函数`extractNames`,该函数接受一个字符串参数`text`,并从中提取出符合名字条件的单词。该函数通过遍历字符串中的每个字符,根据一些条件判断是否为一个名字,然后将提取到的名字存储在一个二维字符数组`names`中。最后,代码使用`printf`函数打印出提取到的名字列表。
在`main`函数中,定义了一个字符串`text`作为示例输入,并将其传递给`extractNames`函数进行名字抽取。执行程序后,会打印出提取到的名字列表。
请注意,这只是一个简单的示例代码,实际的名字抽取程序可能需要更复杂的逻辑来处理各种边界情况和额外的规则。
上一篇
生辰八字起名网站源码
下一篇
php起名小程序源码
https/SSL证书广告优选IDC>>
推荐主题模板更多>>
推荐文章