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

原创 2015年07月11日 00:18:15
   问题描述:字符串在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++)
    ;
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

java分割字符串split()使用需注意的地方,转义字符使用

在Java程序中,由于系统类库的支持,分割字符串变得很容易,但是,在使用spilt方法时,有些细节不容忽视。当使用”+”、”?”、”\”、”“、”^”、”.”等特殊字符分割字符串时,若不进行特殊字符的...

struts2标签使用需注意的几个地方

struts2标签使用需注意的几个地方 1.在jsp页面上直接使用struts2的s标签,要求必须经过FileterDispatcher过滤,否则总会报错  org.apache.jasp...

c语言中字符串比较易错的地方

问题: 源代码由C++代码转化而来,所以对于C风格字符串的比较,仍然使用C++中比较C风格字符串的方式 char* pstr = "enable"; if (pstr == "enable")...

C语言字符串函数和C++string类中的部分函数的使用

C语言字符串函数1、void *memset(void *dest, int c, size_t count); 将dest前面count个字符置为字符c. 返回dest的值.2、void *me...

对stl的set中元素进行删除时需注意的地方

使用迭代器,循环删除stl中vector、map、set等需要注意的问题: 会出现map/set iterator not incrementable 主要是因为erase(iterato...

return在递归调用时需注意的地方

注意点一:一层一层返回 return:从调用函数

Java编程提高性能时需注意的地方(zz)

1.尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面 第一,控制资源的使用,通过线程同步来控...

搜索引擎竞价排名需注意的几个地方 - A5站长网

关键词排名是一个很难搞的东西,随着网络的飞速发展,搜索引擎营销变成常用并且实用的一种网站推广方式,更多的竞价排名也就一一呈现出来,他可以让潜在客户通过搜索关键字找到你的网站,为企业增加销售及营利,也为...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)