c 语言scanf输入字符串
时间: 2023-08-16 17:11:28 浏览: 516
你可以使用`scanf`函数来输入字符串,它的格式化字符串为`%s`。以下是一个示例:
```c
#include <stdio.h>
int main() {
char str[100];
printf("请输入字符串:");
scanf("%s", str);
printf("你输入的字符串是:%s\n", str);
return 0;
}
```
在这个示例中,`scanf`函数会读取用户输入的字符串,并将其存储在`str`数组中。请注意,`scanf`函数默认以空格作为字符串的结束符,所以如果输入的字符串中有空格,`scanf`只会读取第一个空格之前的部分。如果你想读取整行字符串,可以使用`fgets`函数。
相关问题
c 语言scanf输入中文
在C语言中,`scanf`函数主要用于读取标准输入流(通常是键盘输入),默认情况下它处理的是ASCII字符。如果你想让`scanf`能够读入中文字符,你需要特别设置,因为中文字符通常不是单个的ASCII码表示。
一种常见的做法是使用宽字符(wchar_t)和对应的输入函数`wcscnf`或者`wscanf`。例如:
```c
#include <stdio.h>
#include <locale.h>
int main() {
setlocale(LC_ALL, ""); // 设置本地化环境支持宽字符
wchar_t chinese[50];
wprintf(L"请输入中文:");
if (fswscanf(stdin, L"%ls", chinese) == 1) { // 使用宽字符串格式说明符
wprintf(L"您输入的中文是:%ls\n", chinese);
} else {
printf("读取失败!\n");
}
return 0;
}
```
在这个例子中,我们设置了宽字符集的本地化环境,并使用宽字符串格式说明符 `%ls` 来读取输入。然而需要注意的是,这个过程依赖于系统的宽字符支持以及终端或IDE对宽字符的正确显示。
c 语言输入已知数量字符串,每个分别存放
在不同的字符数组中,然后将它们按照字典序从小到大排序输出。
可以使用strcmp函数进行字符串比较,然后使用冒泡排序或者快速排序等算法进行排序。具体实现如下:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STR_NUM 100
#define MAX_STR_LEN 100
void bubble_sort(char str[][MAX_STR_LEN], int n)
{
int i, j;
char temp[MAX_STR_LEN];
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (strcmp(str[j], str[j + 1]) > 0) {
strcpy(temp, str[j]);
strcpy(str[j], str[j + 1]);
strcpy(str[j + 1], temp);
}
}
}
}
int main()
{
char strs[MAX_STR_NUM][MAX_STR_LEN];
int n, i;
printf("请输入字符串的数量:");
scanf("%d", &n);
printf("请输入%d个字符串,每个字符串长度不超过%d个字符:\n", n, MAX_STR_LEN - 1);
for (i = 0; i < n; i++) {
scanf("%s", strs[i]);
}
bubble_sort(strs, n);
printf("按照字典序从小到大排序后的字符串为:\n");
for (i = 0; i < n; i++) {
printf("%s\n", strs[i]);
}
return 0;
}
```
这里使用了冒泡排序算法,也可以使用快速排序等其他排序算法。
阅读全文