【发布时间】:2014-10-15 02:22:50
【问题描述】:
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 数组的空声明,它仍然打印为空。感谢您提供任何帮助。
【问题讨论】:
-
检查你的论据顺序到
strcat。 -
@OliverCharlesworth 是对的,查看 strcat 定义:
void strcat( char* dest, char* src ) { while (*dest) dest++; while (*dest++ = *src++); } -
我用了另一种方式,但由于某种原因,它仍然只打印出空白。
标签: c