结构和字符串

常用字符串处理函数

头文件 string.h
函数:
size_t strlen (const char*) 获得字符串长度,不包括\0
char * strapr(char *) 转大写
char*str(wrlchar *) 转小写
char * strcpy (char * ,const char *)把第二个复制到第一中
数组的隐藏特性其地址是不能改的(常量特性)
ch2=ch3;//不是字符串的复制
strcpy–sch1,ch)∥把ch2复制给h
字符串的比较
strcmp( char1, char2)相同返回0,1<2返正数,否则返负数
字符串的连接
strcat(ch1,ch2);//将2连接到1后面
需要保证连接后的大小没有超过ch1

指向字符串的指针

char * words=“My heat is still”;
words+=9;
puts(words);
输出:is still;
数组形式和执行形式的不同
初始化字符数组把静态储存区的字符串拷贝到数组中
(在得到地址后,可以改变静态储存区的内容,非常危险)
初始化指针时只把字符串的地址拷贝给指针
例:
char str[]=" Helloword";
char *str2 =" Hello word";
printf("%p\n",“Helloword!”);
printf("%p\n",“str1”);
printf("%p\n",“str2”);
结果是1和3的相同,与2不同
同时 str1++;//错误的
str2++;//正确的
2是地址,1是常量
建议用 const char *

结构体

结构是一种构造数据类型,由若干数据项组成,
所以是一种由我们定义的数据类型
使用例

struct name//name就是类型名
{
	DataType var 1;//结构成员
	.......
	.......
}

对于多个结构成员,其储存原理与数组是一样的,
也是一块连续的空间,
每一块是一种类型。

结构定义并不占内存,结构定义一般放在程序开头,头文件声明之后,结构定义仅用来描述结构的形式,使用结构需要声明结构变量

指向结构的指针

struct Hero
{
	char name[50];
	........
	........
}
int main()
{
	struct Hero hero1;
	//定义hero1
	........
	........
	struct Hero * ptr_hero1 = &hero1;
	printf("%s\t",ptr_hero1->name);//减号加大于号
}

定义时还可以用 typedef struct hero{…}Hero;
使用时用Hero就可以了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值