두 개의 정수를 입력하면 결과의 차이가 올바르게 나타납니다. 그러나 문자열과 숯을 입력 할 때 문자열에 char가 몇 번이나 반환되는지 알려주지 않고 -1을 반환합니다. 아무도 나를 도울 수 없습니까? C++을 배운 것은 제 2 일입니다 ...C++ 함수 오버로드가 char을 식별 할 수 없습니다.
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
void mycount(int a, int b)
{
std::cout<< a - b <<std::endl;
}
void mycount(char str[], char s[])
{
int len,i;
int sum=0;
len = strlen(str);
for (i=0;i<len;i++){
if (strncmp(&str[i],&s[0],1) == 0){
sum = sum + 1;
};
};
printf("results: %d times\n",sum);
}
int main()
{
int a,b;
char c[200],d;
if(std::cin>> a >> b){
mycount(a,b);
}
if(std::cin>> c[200] >> d){
mycount(a,b);
}
else{
std::cout<< "-1" <<std::endl;
}
std::cin.clear();
std::cin.sync();
}
왜 'cin'에서 'c [200]'으로 어떤 것을 추출하려고합니까? 범위를 벗어났습니다. 가장 좋은 추측은 전체 문자열을 입력하는 반면'c [200]'은 단지 하나의'char'입니다. 'eof' 플래그가 설정되고'cin'은'false'로 평가 될 것입니다. – JorenHeit
@JorenHeit는 mycount()라는 두 개의 오버로드 된 함수를 제공하는 프로그램을 작성합니다. 이 함수는 정수가 전달되면 첫 번째와 두 번째 매개 변수의 차이를 누적하거나 문자열과 문자가 전달 된 경우 문자가 나오는 횟수를 계산합니다. – JuneWitt
문자열을 전달하지 마십시오 – JorenHeit