不知道你这是做的题目还是练习什么的?这题有很大的问题。
1字符串数组大小的问题,然后因为这个导致后面函数strcpy和后面的字写函数都有问题。哪怕代码改的可以正常运行,以后肯定还是会有指针溢出
#include
#include
#define BUF_SIZE 10
#define setString for (i=0;i
void strCpy1(char* t,const char *f);
void strCpy2(char* t,const char *f);
void strCpy3(char* t,const char *f);
int main() {
int i;
char string[BUF_SIZE]="123456789";
char string1[BUF_SIZE];
setString;
strcpy(string1,string);
showString;
setString;
strncpy(string1,string,strlen(string)+1);//change (1)
showString;
setString;
strCpy1(string1,string);
showString;
setString;
strCpy2(string1,string);
showString;
setString;
strCpy3(string1,string);
showString;
return 0;
}
void strCpy1(char* t,const char *f) {
for (unsigned i=0;i
}
void strCpy2(char* t,const char *f) {
while ((*t++=*f++)!='\0');//change3
}
void strCpy3(char* t,const char *f) {
while ((*t++=*f++)!='\0'); //change 4
}
在电脑上运行,就知道哪地方出错了
~