这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 软件与操作系统 » 【一点一滴学嵌入式Linux】字符串操作

共8条 1/1 1 跳转至

【一点一滴学嵌入式Linux】字符串操作

专家
2013-08-12 02:07:30     打赏

回顾:

strcmp/strncmp

int strcmp(const char *s1, const char *s2);


int:返回值,

const char *s1:第一个参数,const代表这个参数是不可修改的(只读的)

const char *s2:第二个参数,………………

参数:可以是字符串的首地址,也可以直接是字符串



功能:比较两个字符串,逐个字符一一比较,当遇到不想等时,比较两个字符的ascii值,如果

第一个参数的字符大于第二个参数的字符,返回值为1,反之,如果小于,则为-1,如果相等,

返回0.


int strncmp(const char *s1, const char *s2, size_t n);

与strcmp不同之处:

size_t n:在32为系统中,指代的就是四个字节的整型


功能:比较字符串1和字符串2的前n个字节,当遇到不相同的字符时,返回值等于字符串1中的字符

减去字符串2中的字符,如果返回值大于,表示的是,字符串1中不相同的字符大于字符串2中的字符

反之,则是2大于1,如果相当,返回值为0.



函数:

值传递:

主函数将参数的值复制一个副本,传递给形参,改变形参(副本),不改变原值




指针:

1.什么是指针

存放变量地址的变量

2.指针相关的运算符

&:取地址符号,普通变量前加&,得到此变量的地址

*:指针变量,将变量的地址看作一个值,存放在指针变量里

3.什么是指针变量

存放其他变量地址的一个变量(本质也是一个变量)

定义:int *p;char *r;

int *p;

4.指针变量的长度

所有指针变量的长度都是4个字节

5.指针变量的初始化/赋值

int a;

(int *)p=&a;//初始化

-----------------

int *r;

r=&a; //赋值


注意:未初始化的指针,称为野指针,野指针非常危险

int *p;

*p=100; --->段错误


int a;

scanf("%d",a);--->段错误


尽量不要定义野指针,可以将其初始化为NULL

int *p=NULL;


6.常见的指针类型

int * 访问的空间长度4个字节

char * 访问的空间长度为1个字节

void * 访问的空间长度为4个字节

7.指针作为参数(swap)

实参:值传递,只不过传递的是一个地址

形参:

8.指针作为返回值


9.指针和地址

指针是一个变量,它的指向是可以改变的,

地址是一个常量,是不可更改的。


int a[]={1,2,3,4,5};

int *p=a;

p=p+1;//一次偏移四个字节


char a[]={'a','b','c'};

char *r=a;

r=r+1; //根据指向的类型,如果是int *那么偏移4个字节,如果是char *,那么偏移一个字节



10.数组作为形参

1.用指针接收

void print(int *a)


2.数组接收

void print(int a[])//给不给数组的长度都可以,但是一定要有中括号,表明传递的是一个数组



作业

1.实现my_strlen    int my_strlen(const char *string)

2.实现my_strcpy

3.实现my_strcmp

4.实现my_strcat

最好都用指针封装




关键词: 一点一滴     嵌入式     Linux     字符串     操作     指针         

助工
2013-08-12 08:59:31     打赏
2楼
版主辛苦了,这么晚了还更新内容,膜拜一下

院士
2013-08-12 09:08:35     打赏
3楼

凌晨2点哦


高工
2013-08-13 06:51:49     打赏
4楼
我是来看这几个问题的答案的。 1.实现my_strlen int my_strlen(const char *string)2.实现my_strcpy3.实现my_strcmp4.实现my_strcat

专家
2013-08-14 23:40:39     打赏
5楼
答案在此,实现起来有点牵强,模拟一下还是可以的http://forum.eepw.com.cn/thread/235952/1

助工
2013-08-26 00:31:53     打赏
6楼
谢谢楼主

菜鸟
2013-10-20 20:42:23     打赏
7楼
争取在这个星期把作业全部做完。

专家
2022-08-27 16:54:25     打赏
8楼

学习了解一下


共8条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]