记录了字符数组和字符串的几个易错知识点
字符数组和字符串
字符串中值无法改变
#include <stdio.h>
int main()
{
char *p = "abcdef";
p[0] = 'm';
return 0;
}
以上代码会报错,无法直接修改字符串的值。
求长度、拷贝功能实现
#include <stdio.h>
//字符串求长度
int myStrlen(const char *src)
{
int len = 0;
while (*src != '\0') {
len++;
src++;
}
return len;
}
//字符串拷贝
char * myStrcpy(char *dest,char *src)
{
char *retDest = dest;
while ((*dest = *src)!='\0') {
dest++;
src++;
}
return retDest;
}
int main(void)
{
char str[] = "Test test";
int len = myStrlen(str);
printf("len of str = %d\n",len);
char dest[100];
char src[100]="Test StringCpy";
char anotherDest[100];
// myStrcpy(dest, src);
myStrcpy(anotherDest,myStrcpy(dest, src));
printf("dest = %s\n",dest);
printf("anotherDest = %s\n",anotherDest);
return 0;
}
运行结果
len of str = 9
dest = Test StringCpy
anotherDest = Test StringCpy