自己写的strcat函数,该怎么处理
自己写的strcat函数
#include<stdio.h>
#include<stdlib.h> //调用calloc函数
char* Strcat(char *s1,char *s2) //将s2指针指向的字符串连接到s1指针指向的字符串后
{
for(;*s1 =! '0';s1++); //确保s1指针指向字符串尾部‘0’处
for(;(*s1 == '0 ') && (*s2 != '0');s1++,s2++)
*s1 = *s2; //连接字符串
return s1;
}
char* Strcat(char *s1,char *s2);
int main(void)
{
char *str1,*str2; //定义两个字符串指针变量str1,str2
str1 = str2 = (char*)calloc(20,sizeof(char)); //为两个变量开辟20个长度为LEN的内存空间
gets(str1);gets(str2); //输入字符串
str1 = char* Strcat(str1,str2);
printf("%s",*str1);
fflush(stdin); //清空标准输入流
return 0;
}
编译器老是报错error C2062: type 'char' unexpected,我用的是VC6。求各位看看怎么回事
------解决方案--------------------
这种语法问题都还出现?认真看看书吧
------解决方案--------------------
两个字符串用丁相同的地址
------解决方案--------------------
str1 = char* Strcat(str1,str2);
改为
str1 = Strcat(str1,str2);
str1 = str2 = (char*)calloc(20,sizeof(char));
改为
str1 = (char*)calloc(20,sizeof(char));
str12= (char*)calloc(20,sizeof(char));
------解决方案--------------------
这个代码真是漏洞百出~~
for(;*s1 =! '0';s1++); //确保s1指针指向字符串尾部‘0’处
这个不等于又是什么情况?
如果要自己实现经典函数可以参考这篇文章
------解决方案--------------------
为什么不参考
c:\microsoft sdk\src\crt\strcat.c
c:\program files\microsoft platform sdk for windows server 2003 r2\src\crt\strcat.c
c:\program files\microsoft visual studio\vc98\crt\src\strcat.c
c:\program files\microsoft visual studio 8\vc\crt\src\strcat.c
c:\program files\microsoft visual studio 9.0\vc\crt\src\strcat.c
c:\program files\microsoft visual studio 10.0\vc\crt\src\strcat.c
呢?
#include<stdio.h>
#include<stdlib.h> //调用calloc函数
char* Strcat(char *s1,char *s2) //将s2指针指向的字符串连接到s1指针指向的字符串后
{
for(;*s1 =! '0';s1++); //确保s1指针指向字符串尾部‘0’处
for(;(*s1 == '0 ') && (*s2 != '0');s1++,s2++)
*s1 = *s2; //连接字符串
return s1;
}
char* Strcat(char *s1,char *s2);
int main(void)
{
char *str1,*str2; //定义两个字符串指针变量str1,str2
str1 = str2 = (char*)calloc(20,sizeof(char)); //为两个变量开辟20个长度为LEN的内存空间
gets(str1);gets(str2); //输入字符串
str1 = char* Strcat(str1,str2);
printf("%s",*str1);
fflush(stdin); //清空标准输入流
return 0;
}
编译器老是报错error C2062: type 'char' unexpected,我用的是VC6。求各位看看怎么回事
------解决方案--------------------
str1 = char* Strcat(str1,str2);
这种语法问题都还出现?认真看看书吧
------解决方案--------------------
两个字符串用丁相同的地址
------解决方案--------------------
str1 = char* Strcat(str1,str2);
改为
str1 = Strcat(str1,str2);
str1 = str2 = (char*)calloc(20,sizeof(char));
改为
str1 = (char*)calloc(20,sizeof(char));
str12= (char*)calloc(20,sizeof(char));
------解决方案--------------------
这个代码真是漏洞百出~~
for(;*s1 =! '0';s1++); //确保s1指针指向字符串尾部‘0’处
这个不等于又是什么情况?
如果要自己实现经典函数可以参考这篇文章
------解决方案--------------------
为什么不参考
c:\microsoft sdk\src\crt\strcat.c
c:\program files\microsoft platform sdk for windows server 2003 r2\src\crt\strcat.c
c:\program files\microsoft visual studio\vc98\crt\src\strcat.c
c:\program files\microsoft visual studio 8\vc\crt\src\strcat.c
c:\program files\microsoft visual studio 9.0\vc\crt\src\strcat.c
c:\program files\microsoft visual studio 10.0\vc\crt\src\strcat.c
呢?