单片机c语言字符串操作

来源:本站
导读:目前正在解读《单片机c语言字符串操作》的相关信息,《单片机c语言字符串操作》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《单片机c语言字符串操作》的详细说明。
简介:大家知道strcpy 是子环节复制字符串,可能不知道还有个strncpy,这是复制指定长度的字符串
chardes[]="Hello,iam!";
charsource[]="abcdefg";
strncpy(chardes,charsource,3);
这时chardes的值是abc 注意这里可不是把abc添加在!后面的,是从chardes这个数组的首地址开始赋值的,最后会加上''做结束符

字符串转int atoi

函数原型int atoi(const char *nptr);

int val = atoi("12");

这样va就l等于12

int转字符串 itoa

函数原型:char*itoa(intvalue,char*string,intradix);

int number=123456;

char string[25];

itoa(number,string,10);

string就是123456 后面的10是说转化成10进制 16就是转化成16进制 8就是转化成8进制 ,也可以转化成2进制

字符串截取 strncpy

原型:char*strncpy(char*dest,char*src,size_tnum);

大家知道strcpy 是子环节复制字符串,可能不知道还有个strncpy,这是复制指定长度的字符串

chardes[]="Hello,iam!";

charsource[]="abcdefg";

strncpy(chardes,charsource,3);

这时chardes的值是abc 注意这里可不是把abc添加在!后面的,是从chardes这个数组的首地址开始赋值的,最后会加上''做结束符。

改变一下用法

strncpy(chardes+1,charsource+2,3);

这时候chardes的值是Hcde 为什么是这个值,能看懂不?自己思考一下。偏移哈。

字符串构造 sprintf

原型 int sprintf( char *buffer, const char *format, [ argument] … );

这个应该很多人都知道。

char dest[20];

int val=12;

sprintf(dest,"val=%d",val);

dest的值就是"val=12" 那个12也是字符串了哈注意下。

这个函数也可以整形、浮点型转字符串

sprintf(dest,"%f",3.1415926f);

dest 就是“3.1415926”

sprintf(dest,"现在的时间是%s,请注意","2014-04-09 11:27:21"); 后面这个字符串也可以换成变量

dest的值是 "现在的时间是2014-04-09 11:27:21,请注意"

直接对内存操作memset

原型 void *memset(void *s, int ch, size_t n);

char buffer[20];

strcpy(buffer,"1234567890");

memset(buffer,0,sizeof(char)*20);

这时buffer中的数据全都是0了

strcpy(buffer,"1234567890");

memset(buffer+2,6,sizeof(char)*2);

这时buffer值是1266567890

这个函数可以对任何数据类型的内存进行修改。所以有些从串口接收进来的数据需要做一下简单的修改再转发出去的话就可以用这个函数做修改。

先介绍这些吧,再想起来别的再补充

memcpy函数使用起来也不错的,直接把字节数组复制到指定位置了,这个就不说了。

字符串分割strtok

原型 char *strtok(char s[], const char *delim);

分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。

ARDUINO 代码

输出:

abc

d

记住了,只要第一次分割的时候需要指定字符串,之后再分割就用NULL就行了,当p==NULL的时候说明分割完了。这里使用到了指针,此处指针不需要释放。

查找字符串 strstr

原型 char *strstr(const char *str1, const char *str2);

strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。

str1: 被查找目标

str2: 要查找对象

char str[]="1234 xyz";

char* str1=strstr(str,"34");

printf("%s",str1);

显示: 34 xyz

字符串比较 strcmp

原型:extern int strcmp(const char *s1,const char * s2);

比较s1和s2 两个相等就返回0 不想等就返回非0值。

字符串连接strcat

原型 extern char *strcat(char *dest,char *src);

把src 连接到dest值的后面,注意dest要有足够的空间去接收src否则会出错

提醒:《单片机c语言字符串操作》最后刷新时间 2024-03-14 01:09:34,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《单片机c语言字符串操作》该内容的真实性请自行鉴别。