c语言控制台输入字符串,根据特殊字符截取字符串
时间: 2024-09-23 20:12:25 浏览: 50
在 C 语言中,你可以使用标准库函数 `fgets()` 和 `strtok()` 来从控制台读入字符串并根据特定字符截取。`fgets()` 函数用于读取一行字符到指定的内存缓冲区,而 `strtok()` 则用于分割字符串。
首先,使用 `fgets()` 获取用户输入的完整字符串,例如:
```c
#include <stdio.h>
#include <string.h>
#define MAX_INPUT_LENGTH 100 // 最大输入长度
char input[MAX_INPUT_LENGTH];
// 从控制台读取一行字符串
void get_input() {
fgets(input, sizeof(input), stdin);
input[strcspn(input, "\n")] = '\0'; // 去除换行符
}
```
然后,可以使用 `strtok()` 分割字符串,假设特殊字符是 `';'`:
```c
// 截取字符串直到遇到分隔符
char* strtok_copy(char *str, const char *delim) {
char *copy = strdup(str); // 备份原始字符串防止破坏原内容
return strtok(copy, delim);
}
int main() {
get_input();
char* token;
while ((token = strtok_copy(input, ";"))) { // 使用分号作为分隔符
printf("截取部分:%s\n", token);
}
free(copy); // 释放复制的字符串
return 0;
}
```
在这个例子中,程序会按分隔符 `;` 打印出每个独立的部分。注意,为了处理连续的分隔符,这里使用了 `strtok_copy()` 函数的副本,以避免对原始字符串造成影响。
阅读全文