字符串
①:以“”包含的字符,其特征为默认自带‘\0’
②:字符串的标记‘\0’
之前我们学过数组,我们先定义一个字符数组:
char arr[10]={‘a’,’b’,’c’,’d’,’e’};
类似,我们今天定义一个字符串:
char brr[10]={“abcde”};
也可以这样写:char brr[10]="abcde";
你会发现结果一摸一样,我们可以得出结论在定义字符串时可以省略大括号。
我们定义一个字符串常量:
char *str=”abcde”;
我们可以将字符x赋值给brr[0],但不可以赋值给str[0];
若执行将字符x赋值给str[0],程序将崩溃。
字符串拷贝
主函数定义一个字符串:
char frr[10];
写一个拷贝函数,主函数调用这个拷贝函数,将err赋值给frr;
也可以将数组用指针的形式表示,代码如下:
可以得出结论
*(src+i)==src[i];//src[1]==b, 而src表示首元素地址,src+1地址加一格子再解引用也==b
也可以用while循环写:
也可以合并到一步,代码如下:
因为++和*优先级相同但结合方向从右向左,且是后置++,所以先执行*des=*src语句再执行++。所以可以合并到一步。
最后还有更加省略的方法,直接再while循环语句判定条件内写,代码如下:
这个问题最后一个方法留给大家思考,至此,字符串拷贝完成。
谢谢。