雨如洁 发表于 2020-3-23 22:45:11

字符处理的问题

#include <stdio.h>
#include <string.h>

#define NUM 128

int main()
{
      int ch, i, j = 0, max = 0;
      int input_num = 0;
      int ascii = {0};
      char count = "";

      printf("请输入英文文本:");

      while ((ch = getchar()) != '\n')
      {
<div class="blockcode"><blockquote>ascii++; // 字符对应的ASCII码加1

                input_num++;
      }

      for (i = 0; i < NUM; i++)
      {
                if (ascii)
                {
                        count = i;
                        if (ascii > ascii)
                        {
                              max = i;
                        }
                }
      }

      printf("你总共输入了%d个字符,其中不同的字符个数有%d个。\n", input_num, strlen(count));
      printf("它们是:%s\n", count);
      printf("出现次数最多的字符是\'%c\',它总共出现了%d次。\n", max, ascii);

      return 0;
}
if (ascii)
{
count = i;
if (ascii > ascii)
{
max = i;这里的
ascii表达的是什么啊
然后count后面那个i 不是从零开始的数字吗为何输出来确是英文
这个是怎么表述重复英文的意思啊
if (ascii > ascii)
{
max = i;
ascii++; // 字符对应的ASCII码加1   这里加一的意义是什么 ??






lawsonwang 发表于 2020-3-23 22:45:12

这里得说一下,char和int是可以互换的,char转换成int变成对应的ASCII码(要是连ASCII都不知道我就无能为力了),int转换成char则变成对应的字符。
char的范围是0~(128-1),这里#define NUM 128就是这个意思。
因此,char可以作为数组下标。
还有,这里:
printf("你总共输入了%d个字符,其中不同的字符个数有%d个。\n", input_num, strlen(count));
printf("它们是:%s\n", count);
printf("出现次数最多的字符是\'%c\',它总共出现了%d次。\n", max, ascii);
如果这里用的是%c或%s,printf会自动帮你转换为字符或字符串。
#include <stdio.h>
#include <string.h>

#define NUM 128

int main() {
        int ch, i, j = 0, max = 0;
        int input_num = 0;
        int ascii = {0};
        char count = "";

        printf("请输入英文文本:");

        while ((ch = getchar()) != '\n') {
                ascii++; // 字符对应的ASCII码加1 表示ch这个字符出现次数+1
                input_num++;
        }

        for (i = 0; i < NUM; i++) {
                if (ascii) { // ascii表示字符i出现的次数,这段代码表示如果字符i出现在了字符串中
                        count = i;
                        if (ascii > ascii) {
                                max = i; // 取出现次数最大的字符
                        }
                }
        }

        printf("你总共输入了%d个字符,其中不同的字符个数有%d个。\n", input_num, strlen(count));
        printf("它们是:%s\n", count);
        printf("出现次数最多的字符是\'%c\',它总共出现了%d次。\n", max, ascii);

        return 0;
}

ba21 发表于 2020-3-23 23:01:50

把代码全删除,用不代码格式发代码重发一次
页: [1]
查看完整版本: 字符处理的问题