void decode(char *str, int j)
{
int i;
char s[100]="";
i = strlen(str);
//Print each uppercase character in the string
if(j<i)
{
if(isupper(str[j]))
{
strcat(&str[j], s);
j++;
decode(str, j);
}
else
{
j++;
decode(str, j);
}
}
else
printf("%s\n", s);
}
此函数仅用于打印str(争论)中的大写字符。但目前所有打印出来的都是空白。我对strcat的理解显然有些问题。我不确定它是否以我在顶部声明的char数组的方式工作,例如。即使它被宣布为空,它还会附加到它吗?如果我取出char数组的空声明,它仍然打印为空。感谢您的任何帮助。
答案 0 :(得分:0)
如果j <我将打印s,它在堆栈上声明,并在函数启动时始终为空。 您可以尝试将其传递给解码功能。虽然迭代字符串而不是使用递归可能更好。