连接到C中的空字符串?

时间:2014-10-14 18:11:11

标签: c

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数组的空声明,它仍然打印为空。感谢您的任何帮助。

1 个答案:

答案 0 :(得分:0)

如果j <我将打印s,它在堆栈上声明,并在函数启动时始终为空。 您可以尝试将其传递给解码功能。虽然迭代字符串而不是使用递归可能更好。