C语言中字符串使用需注意的地方

    问题描述:字符串在C语言中使用很多,可以用于输出调试信息。字符串变量即为字符数组,但是在末尾会自动加上一个空字符来进行结尾标示。
    字符串操作:C允许对指针取下标,字符串也可以直接取下标操作,
char ch1;
ch1 = "abcd"[2];
    此时ch1值为c。
   但是字符串指针不可以试图用来改变字符串的值,这样做会导致运行不稳定,例如出现调试错误等,
char *p = "abcd";
    就不能用*p ="d";这样的操作。如果要改变字符串值,可以用字符数组,
char str1[]="abcd";
str1[0] = "d";
    字符串变量的使用:字符串变量初始化时会自动在字符串结尾加上空字符。在实现自己的字符串函数时,要特别注意结尾空字符的使用。对于程序运行过程中要改变字符串变量的操作,与上面的字符串操作注意事项一样要定义为字符串数组。
    字符串的打印:%.ps,用于显示字符串的一部分,p为要显示的字符数量。而%ms用于在长度为m的字段内显示字符串,超过m个的字符串会全部显示。用puts显示字符串,其会自动在最后加上换行符。
   使用scanf输入字符串时,scanf("%s",str1);的str1前不用&,str1为数组名。同时,当输入的字符串有空格字符时,scanf是不会继续往下读的,遇到空格就表示一个字符串读取结束。要允许一次输入一个含有空格的字符串,就要使用gets(str1);了。
    字符串库string.h:
    (1)char *strcpy(char*s1, const char *s2);
要确保s2的长度小于s1的长度,否则会越界继续复制,导致不可预估情况。
使用strncpy(str1, str2, sizeof(str1));更加安全。
    (2)size_t strlen(constchar *s);
返回字符串的长度(不会包括空字符)。
    (3)char *strcat(char*s1, const char *s2);
将s2的内容追加到s1的末尾,与strcpy一样,要确保s1有足够空间来容纳s2。
使用strncat(str1, str2, sizeof(str1)-strlen(str1)-1);
    (4)int strcmp(const char*s1, const char *s2);
s1小于s2,返回小于0的值,s1等于s2,返回0,s1大于s2,返回大于0的值。
    字符串惯用法:
    (1)搜索字符串结尾:
while(*s)
    s++;
while(*s++)
    ;
    (2)字符串复制:
while(*p++ = *s++)
    ;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技塑未来-苏导

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值