我正在设置一个程序,如果我键入一个字符串,我需要使用一个带有这两个形式参数的函数(一个指针和一个字符)。每次我运行程序时,代码都不会使用实际参数运行我声明的函数。
这是如何工作的......
1)输入我的字符串
2)输入我想看的字符重复
3)该函数将运行for循环以查看我的字符串(在数组中)中的哪些字符包含重复的字符;每次它都会增加并总计重复的次数。以下是我的功能代码......
int main(void)
{
char string[100], rep_char = 'c', *ptr = string[0];
int charcnt(char *ptr, char c);
printf("Input your string: ");
gets(string);
printf("%i", strlen(string));
printf("\nWhich character in the string are you checking for repetition? ");
scanf_s("%c", &rep_char);
charcnt(*ptr, rep_char);
getch();
return 0;
}
int charcnt(char *ptr, char c)
{
int rep = 0;
char string[100];
for (int i = 0; i < strlen(string); i++)
{
*ptr = string[i];
if (string[i] == c)
{
rep++;
}
}
return rep++;
}
我希望这样跑......
[预期]:
输入你的字符串:你好。
字符串中的哪个字符是您检查重复?升
2
相反,我得到......
[实际]:
输入你的字符串:你好。
字符串中的哪个字符是您检查重复?升
这些是我在您的程序中发现的以下问题。
charcnt function
的结果返回。if condition
可以是if(ptr[i] == c)
看一下这个!
int main() {
char string[100], rep_char = 'c';
int charcnt(char * ptr, char c);
printf("Input your string: ");
gets(string);
printf("%i", strlen(string));
printf("\nWhich character in the string are you checking for repetition? ");
scanf("%c", & rep_char);
printf("\n%d", charcnt(string, rep_char));
getch();
return 0;
}
int charcnt(char * ptr, char c) {
int rep = 0;
for (int i = 0; i < strlen(ptr); i++) {
if (ptr[i] == c) {
rep++;
}
}
return rep++;
}