69,369
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <string.h>
int fund(char* a, char* b, char* c)
{
char a1[10];
char b1[10];
char c1[10];
printf("a=%s\n",a);
printf("b=%s\n",b);
printf("c=%s\n",c);
memset(a1,0x00,sizeof(a1));
memset(b1,0x00,sizeof(b1));
memset(c1,0x00,sizeof(c1));
strcpy(a1,a);
strcpy(b1,b);
strcpy(c1,c);
if( strlen(a1)> 0 )
{
printf("a1=%s\n",a1);
}
if( strlen(a1)> 0 )
{
printf("b1=%s\n",b1);
}
if( strlen(a1)> 0 )
{
printf("c1=%s\n",c1);
}
return 0;
}
int main(void)
{
fund("","","");
return 0;
}
#include <stdio.h>
#include <string.h>
int fund(char* a, char* b, char* c)
{
char a1[10];
char b1[10];
char c1[10];
printf("a=%s\n",a);
printf("b=%s\n",b);
printf("c=%s\n",c);
//memset(a1,0x00,sizeof(a1));
//memset(b1,0x00,sizeof(b1));
//memset(c1,0x00,sizeof(c1));
strcpy(a1,a);
strcpy(b1,b);
strcpy(c1,c);
if( strlen(a1)> 0 )
{
printf("a1=%s\n",a1);
}
if( strlen(b1)> 0 )
{
printf("b1=%s\n",b1);
}
if( strlen(c1)> 0 )
{
printf("c1=%s\n",c1);
}
return 0;
}
int main(void)
{
fund("","","");
return 0;
}
参考一下吧
memset可以不需要,因为strcpy会将'\0'加到目标串的末尾,目标串即strcpy的第一个参数。
if( strlen(b1)> 0 )
{
printf("b1=%s\n",b1);
}
if( strlen(c1)> 0 )
{
printf("c1=%s\n",c1);
}
如楼主所说,这样做是没有问题的,char*实际上是可以看成是字符串的。楼主程序运行后应该没有输出char a1[10];
memset(a1, 0x00, sizeof(a1));
strcpy(a1, a);
int fund(const char* a, const char* b, const char* c)