【发布时间】:2020-08-05 20:21:55
【问题描述】:
我是 C 编程新手,我有一个任务要做。我的作业就是这样:
假设您从键盘(您可能将其视为默认输入设备)逐个字符地扫描土耳其语输入文本,直到按下“CTRL-D”。您应该跳过标点符号和空白字符。只要扫描过程完成,您的程序就会显示字母和数字的频率。您需要讨论数据结构以及流程图解决方案并将它们与您的代码一起提交。
我编写了程序,但我遇到了问题。输入的某些字符(例如ğ)显示为§。这是我的源代码。
#include <stdio.h>
#include "stdlib.h"
#include <locale.h>
int main()
{
char message[100] = { ' ' };
char ch;
int i = 0, j = 0, k = 0;
setlocale(LC_ALL, "Turkish");
printf("Enter your message: ");
while ((ch = getchar()) != '\4')
{
message[i] = ch;
i++;
}
for (int j = 0; j <= i; j++)
{
int repeated = 1;
for (int k = (j + 1); k <= i; k++)
{
if (message[k] == message[j])
{
repeated++;
}
}
printf("%c is repeated %d times.\n", message[j], repeated);
while (message[j] == message[j + 1])
{
j = j + 1;
}
}
system("PAUSE");
return 0;
}
我该如何解决这个问题?
【问题讨论】: