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).