字符串: 字符串其实就是一个数组(指针),在 scanf 的输入列中是不需要在前面加“&”符号的,因为字符数组名本身即代表地址
值得注意的是字符串末尾的„\0‟,如果没有的话,字符串很有可能会不正常的打印
另外就是字符串的定义和赋值问题了,笔者有一次的比较综合的上机作业就是字符串打印老是乱码,上上下下找了一圈问题,最后发现是因为 char *name; 而不是 char name[10]; 前者没有说明指向哪儿,更没有确定大小,导致了乱码的错误,印象挺深刻的
另外,字符串的赋值也是需要注意的,如果是用字符指针的话,既可以定义的时候赋初值,即 char *a="Abcdefg"; 也可以在赋值语句中赋值,即 char *a; a="Abcdefg"; 但如果是用字符数组的话,就只能在定义时整体赋初值,即 char a[5]={"abcd"};而不能在赋值语句中整体赋值
常用字符串函数列表如下,要会自己实现: 函数作用 函数调用形式 备注 字符串拷贝函数 strcpy(char*,char *) 后者拷贝到前者 字符串追加函数 strcat(char*,char *) 后者追加到前者后,返回前者,因此前者空间要足够大 字符串比较函数 strcmp(char*,char *) 前者等于、小于、大于后者时,返回0、正值、负值
注意,不是比较长度,是比较字符 ASCII 码的大小,可用于按姓名字母排序等
字符串长度 strlen(char *) 返回字符串的长度,不包括'\0'
转义字符算一个字符
字符串型->整型 atoi(char *) 整型->字符串型 itoa(int,char *,int) 做课设时挺有用的 sprintf(char *,格式化输入) 赋给字符串,而不打印出来
课设时用也比较方便 注:对字符串是不允许做==或
=的运算的,只能用字