Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 递归计算具有唯一值(无重复值)的两个字符串中的相等值_C_Recursion - Fatal编程技术网

C 递归计算具有唯一值(无重复值)的两个字符串中的相等值

C 递归计算具有唯一值(无重复值)的两个字符串中的相等值,c,recursion,C,Recursion,我需要编写一个递归函数,它接受字符串,每个字符串都没有重复的值,并且该函数计算两个字符串中出现的值的数量 例如,“1234”是一个可以传递给函数的值,而“12343”中有2个“3” 我写的函数是 int func(char* str1,char* str2) { if(*str1 == '\0' || *str2 == '\0') return 0; if(*str1 == *str2) return 1 + func(str1+1,str2+1) ; else ret

我需要编写一个递归函数,它接受字符串,每个字符串都没有重复的值,并且该函数计算两个字符串中出现的值的数量 例如,“1234”是一个可以传递给函数的值,而“12343”中有2个“3”

我写的函数是

int func(char* str1,char* str2)
{
    if(*str1 == '\0' || *str2 == '\0') return 0;

    if(*str1 == *str2) return 1 + func(str1+1,str2+1) ;
    else return (func(str1,str2+1) + func(str1+1, str2))  ;
}
它并不是在所有情况下都有效

范例
str1=“12346”,str2=“74321”,结果4

请给出准确输入、预期结果和实际结果的示例。这些字符串是否已“排序”(如“01367”或“1234”)?“12343”是不能传递的字符串的示例吗?如果任一字符串到达末尾,则第一个
将停止。也就是说,
func(“12345”,”)
将返回
0
。这是有意的还是应该继续在非空字符串上操作?我想我不清楚这两个字符串之间的关系到底应该是什么,因为你没有解释清楚。@Bob_uuuuu字符串不是sorted@kaylum用您的说明更新了问题