字符串数组名做函数形参,会退化正指针变量,需要使用指针变量操作字符串
代码:
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>
void my_strcpy(char * src, char * dest)
{
/—字符串数组名做函数形参,会退化正指针变量,需要使用指针变量操作字符串—/
if 1 //方法一,指针下标操作字符
int i = 0;
while (src[i])
{
dest[i] = src[i];
i++;
}
#endif
if 0 //方法二,指针变量加偏移量
int i = 0;
while (*(src+i))
{
*(dest+i) = *(src+i);
i++;
}
#endif
if 0 //方法三,指针变量自加
while (*src)
{
*dest = *src;
dest++;
src++;
}
#endif
if 0 //方法四,指针变量自加
while (*src)
{
*dest++ = *src++;
}
#endif
if 0 //方法五,在while条件判断中做字符拷贝
while (*dest++ = *src++);
#endif
return;
}
// char * serch_char(char * ch, int ch1)
// {
// while(*ch)
// {
// if(*ch == ch1) return ch;
// ch++;
// }
// return NULL;
// }
void main()
{
char ch[] = “hello world”;
printf(“%s\n”, ch);
char dest[128] = {0};
my_strcpy(ch, dest);
printf("%s\n", dest);
//printf("%s\n", ch);
//char ch1 = 'l';
// // while (*p)
// // {
// // printf("%s\n",p);
// // p++;
// // }
// p = serch_char(ch,ch1);
// // printf("%s\n", ch);
// printf("%s\n", p);
return;
}