C 输入的字符数 bool in_数组(字符a[],字符输入,整数){ 对于(int l=0;l

C 输入的字符数 bool in_数组(字符a[],字符输入,整数){ 对于(int l=0;l,c,arrays,loops,duplicates,char,C,Arrays,Loops,Duplicates,Char,这是我的代码,但它返回重复的次数 由于有两个字符a和b,我希望它能帮助您: bool in_array(char a[], char input, int len){ for (int l = 0; l < len; l++){ } } return false; } int main(void) { char i = 'l'; int count = 0; int count_d = 0; char a[1000] = {0}; e

这是我的代码,但它返回重复的次数


由于有两个字符a和b,我希望它能帮助您:

bool in_array(char a[], char input, int len){
  for (int l = 0; l < len; l++){

    }
  }
  return false;
}


int main(void) {


  char i = 'l';
  int count = 0;
  int count_d = 0;
  char a[1000] = {0};

    else{
      count_d++;
    }
  }
  printf("%d\n", count_d);

}
`include
#包括
#包括
int in_a(字符*a,字符c)
{
对于(int i=0;i
如果您只学习了数组,不知道如何动态分配内存,则使用第二个数组存储唯一的重复字符

这是一个演示程序

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

int in_a(char *a, char c)
{
    for (int i = 0; i < strlen(a); i++)
        if (a[i] == c)
            return 0;
    return (1);
}

int main(int ac, char **av)
{
    int count_duplicates = 0;
    int same = 0; 
    char old = 0;
    char new[128] = {0}; // i
    int count = 0;
    char *a = av[1];
    while (a[count] != '\0') {
        if (old != a[count] && in_a(new, a[count])) {
            same = 0;
        }
        if (a[count] == old && same != 1) {
            count_duplicates += 1;
            same = 1;
        }
        old = a[count];
        new[count] = a[count];
        count += 1;
    }
    printf("%i\n", count_duplicates);
    return (0);
}`
然后程序输出将是

aaabbaaac

如果没有malloc或进入dynamic,您将如何解决这个问题memory@mkrieger1:数组不包含看到字符的次数。它包含一个看到的字符列表。@mkrieger1是的,这就是为什么我对应该做什么感到困惑。为了知道有多少不同的字符被重复,你需要知道有多少个字符被多次看到。对于每个字符,为了知道它是否被多次看到,您需要知道它是被看到了零次、一次还是多次。找出如何跟踪每个字符的信息。此外,不要假设正在使用ASCII或有128个字符。可能的
unsigned char
值的数量是
UCHAR\u MAX+1
,其中
UCHAR\u MAX
是在
@EricPostpischil中定义的。实际上,很难赢得所有人。我试图尽可能少地偏离操作码。我不知道你还要我解释什么!?它只是一个
while
循环,一个
for
循环和一个
printf
。其中大部分已经由OP创建,而且我在一些必要的地方发表了评论。是的,它应该是
256
(一般来说)或者其他一些我可能不知道的东西。我没有你那样丰富的经验,先生。与您的声誉一样高,它甚至不需要一分钟就可以将其从
255
更改为
256
。非常感谢。
aaabbaaac
There are 2 duplicated character(s).