字符串:以'\0'结尾的若干字符的合集
字符串的地址,是第一个字符地址,"Helloworld"的地址是字符‘H’的地址,由此可以通过一个字符指针变量保存字符串的地址 eg char*s="Helloworld";
存放形式:1.数组(可修改) char string[100]="I love C!" 定义字符数组,存放多个字符,并用输入字符串初始化该数组。
2、文字常量区 (内容不可修改) char*str="I love C!" str存放I的地址,“I love C!”存放在文字常量区。
3、堆区(可修改) malloc函数!free! 动态分配内存:申请一块连续的指定大小的内存块区域 指针自身 = (指针类型*)malloc(sizeof(指针类型)*数据数量)
eg: int *p=(int *)malloc(4);(请求系统分配4字节的内存空间,返回第一字节地址,返回指针p)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char*str;
str=(char*)malloc(20);
strcpy(str,"I love C!");
printf("str=%s\n",str);
*str='y';
printf("str=%s\n",str);
}
结果:y love C!
字符串处理函数 头文件:#include<string.h>
gets(s);
puts(s);
长度函数:strlen(s);-->测\0前的字符个数 sizeof(s) 测量数据占用内存空间大小 测数组,数组占几个字节
测指针变量 4个字节
复制函数strcpy(s1,s2) s1是字符数组基地址 s2字符数组名或字符常量 s2中的字符串复制到s1
连接函数strcat(s1,s2) s1是字符数组基地址 s2字符数组名或字符常量 连接s1 和 s2, 数组s1长度足够大
比较函数 strcmp(s1,s2) 相等0,s1>s2为 1 s1<s2为-1