#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
char* convertandmerge (char a[][20])
{
char *p=(char*)malloc(sizeof(char)*40);
p=strcat(a[0],a[1]);
for(;*p!='\0';p++)
{
if(*p>='a'&&*p<='z')
*p=toupper(*p);
else if(*p>='A'&&*p<='Z')
*p=tolower(*p);
}
return p;
}
int main (void)
{
char words[2][20]={"Welcome to China","Happy Birthday 2022"};
char *str=convertandmerge(words);
printf("%s",str);
free(str);
}
为什么我函数里插入了一段大小写转换的for循环整个程序就跑不起来了呢?应该如何改呢?求指正,谢谢。