IOS 开发学习二 C语言知识 字符串处理

来源:互联网 发布:华为批量配置端口 编辑:程序博客网 时间:2024/06/08 01:25

一、C语言中字符串用字符数组表示。字符串要以'\0'结束,表示ASCII码值为0的字符。

如:

a[0]a[1]a[2]he\0

二、字符串定义:

#include <stdio.h>int main(int argc,const char *argv[]){   char s[] = {'h','e','\0'};   char s1[3]={'h','e','\0'};   char s2[3]="he";   char* s3="he";}

三、字符串的输出:

char s[] = "he";
printf("%s\n",s); //一次可以输出多个字符串puts(s); //一次输出一个字符串,\0结束unsigned long p_s=(unsigned long)s;printf("s的32位地址"=0x%X\n",p_s);//打印32位内存地址

四、字符串的输入

char a[13];
char b[12];scanf("%s %s",a,b);    \\自动在后面加\0,不能接收空格 tab 回车//char a[10];gets(a);   //自动在后面加\0,可以接收空格 tab,到回车结束

五、字符串的使用:

数组名称可以代理数组指针

void change2(char *c){        *(c+2)=3;}in main(int argc,const char*argv[]){      char a[3];   charge2(a);}

1. 字符数组长度

   strlen(st1);  \0不计算长度,计算到\0结束

2. 字符数组比较

   不能直接比较,st1>st2是错误的,要用strcmp()函数
   strcmp(st1,st2); //st1=st2相等则输出0,st1<st2输出-1,st1>st2输出1
   strncmp(st1,st2,n);   把st1,st2的前n个进行比较。

3. 连接字符数组

   不能直接用st1=st1+st2;用strcat()函数
   strcat(st1,st2); //将st1和st2连接后赋给st1,本例连接后st1为”hello,world”
   strncat(st1,st2,n);   n表示连接上st2的前n个给st1,在最后不要加'\0'。

4. 替换

   strcpy(st1,st2); //用st2的值替换st1的值,字符数组不能如此赋值st1=st2或st1[]=st2[]都是错误的
   本例中st1值被替代为”world”
   strncpy(st1,st2,n); n表示复制st2的前n个给st1,在最后要加'\0'。

5. 其他函数

strchr(st1,ch) //ch为要找的字符。如strchr(st1,’e’);会截取出st1中以字母’e’开头的字符串,要用string类型的来存储,如string c1; c1=strchr(st1,’e’); 则c1为”ello”
   strspn(st1,st2); //返回st1起始部分匹配st2中任意字符的字符数。本例中”hello,”中的第一个字符’h’不能在”world”中找到匹配字符,因此返回值为0。如st1=”rose”;st2=”worse”;则返回值为4,因为rose在worse中都能找到匹配字符。
   strrev(); //颠倒字符串

putchar(65)putchar('A');  输出一个字符,char c;c=getchar();

六、字符串数组

char names[3][10] = {{'a','b','\0'},{'c','d','\0'}};char name2[3][10] = {{"ab"},{"cd"}};char name3[3][10] = {"ab","cd"};


0 0
原创粉丝点击