C中字符串处理

来源:互联网 发布:淘宝客推广在哪里设置 编辑:程序博客网 时间:2024/06/10 22:31

1.字符串的表示形式

      在C语言中没有string类型,常见的表示形式
      (1)常量字符串
      “Hello”  “GoodMorning” 存储在只读常量区,字符串的内容不可以修改
      (2)使用字符指针去处理
      char* pStr = “Hello”;
      让pStr指针指向字符串“Hello”的首地址,也就是第一个字符的地址
      (3)字符数组
      char buf[6] = {'H','e','l','l','o'};
      char buf[6] = "Hello";

 注意:字符串使用'\0'结束,使用printf(“%s”);输出字符串时,根据给定的地址一个字符一个字符的打印,直到遇到'\0'

 2.字符串形式的比较

  (1)常量字符串
  “hello” “good”
  存储在只读常量区,不可以修改
  (2)字符数组
  char str[10] = "hello";//也就是字符数组中存放的字符串内容实际上存在栈区,数值可以修改
数组名是个常量不可以修改
  (3)字符指针 
       char* pStr = str;
       char* pStr = "hello";
       字符指针可以指向字符数组的首地址,也可以指向字符串的首地址,自赋指针中保存的首地址

3.字符串的读取

(1)scanf函数
scanf(“格式字符串”,地址列表);
如:
char str[20];
scanf("%s",str);或者scanf(“%s”,&str);
注意: 遇到空白字符停止读取


(2)gets函数
char *gets(char *s)
函数的功能从标准输入(stdin)中读取一行数据到s所指向的缓冲区中
如:
char str[20];
gets(str);
注意:读取一行字符串时,也能够读取空白字符, 不能对数组的越界进行处理


(3)fgets函数
char *fgets(char *s,int size,FILE *stream);
函数的功能:
     第三个参数给stdin,表示从标准输入中读取size个长度的字符串,然后存储在s所指向的缓冲区中
  注意:
  fgets函数会在字符串的后面增加\n

4..字符串的相关函数

(1)strcpy函数 ——>重中之重
#include<string.h>
char *strcpy(char *dest,const char *src);
功能: 表示将src指向的字符串内容拷贝到dest指向的缓冲区中,拷贝的过程中包含\0,返回值是目标缓冲区的地址


(2)strcat函数
char *strcat(char *dest, const char *src);
功能:
表示将src指向的字符的内容追加到dest指向的字符串后面,追加的过程中将dest中的\0覆盖掉,返回值是目标字符串的地址

(3)strncpy 和 strncat函数
char *strncpy(char *dest, const char *src, size_t n);
char *strncat(char *dest, const char *src, size_t n);
功能:
表示从str字符串中 拷贝/连接n个字节的数据到 dest指向的字符串中
(4)strlen函数
size_t strlen(const char *s)///size_t  相当于int
功能:表示计算s指向的字符串的长度,不包含\0,返回值为字符串中字符的个数
与 sizeof 关键字区分开,sizeof 计算字符串长度时 包含\0
(5)strcmp 函数
int strcmp(const char *s1, const char *s2);
功能:
    表示比较s1和s2中字符串的大小,
    如果s1比s2小,那么返回值 < 0;
    如果s1和s2相等 ,那么返回值为0;//!strcmp(s1,s2);
    如果s1 大于 s2,那么返回值 > 0;
(6)strncmp 函数
int strncmp(const char *s1, const char *s2, size_t n);
 功能:

  比较s1 和 s2中前n个字符的大小,同上

(7)将字符串中大写字母转换成小写strlwr()函数
  (1)调用方式:strlwr(字符串) 

(2)函数功能:将字符串中的大写字母转换成小写,其它字符(包括小写字母和非字母字符)不转换。
 (8)将字符串中小写字母转换成大写strupr()函数
  (1)调用方式:strupr(字符串) 

(2)函数功能:将字符串中小写字母转换成大写,其它字符(包括大写字母和非字母字符)不转换

2.const 与指针

 (1)const int* p;
 表示*p的值不可以改变,p 的值可以改变
 (2)int const *p
 效果同上
 (3)int* const p;
 表示p 的值不可以改变,也就是不可以改变指针的指向,*p可以改变
 (4)const int* const p;
 表示p的值不可以改变,*p的值也不可以改变


0 0
原创粉丝点击