字符串详解
零一2035
为自己加油!!
展开
-
数组作为函数形参,使用时候可以减少传递字符长度
#include <stdio.h>#include <string.h>#include <stdlib.h>#define len 10typedef const char (myarr)[len];void func(const char arr[len]){ char dest[len] = {0}; printf("dest :%s \r\n",dest); memcpy(dest,arr,le...原创 2021-11-18 15:06:46 · 304 阅读 · 0 评论 -
解析字符串到hex格式
// str="f1aaBBCc0978fa" bits[0]=F1,bits[1]=AA……………………int ICACHE_FLASH_ATTR str_to_hex(char *str,char *bits) {int i,n = 0;for(i = 0; str[i]; i += 2) { if(str[i] >= 'A' && str[i]原创 2016-06-22 09:33:48 · 2136 阅读 · 0 评论 -
strcpy和memcpy的区别
strcpy和memcpy的区别strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需转载 2016-07-15 15:41:50 · 189 阅读 · 0 评论 -
判断字符串中是否有相同的字符
#include"stdio.h"#include"string.h"void main(){ char *str="qwertyuiq"; int i,j; for(i=0;i for(j=i+1;j if(str[i]==str[j]){原创 2016-06-27 15:44:24 · 1116 阅读 · 0 评论 -
二维数组的赋值
#include"stdio.h"#include"string.h"void main(){ char arr[5][10]; char *ptr="abcdefg"; char temp; int i,j; for(i=0;i { tem原创 2016-05-03 15:10:54 · 1329 阅读 · 0 评论 -
三个二维数组的比较
(1)、int **Ptr; (2)、int *Ptr[ 5 ]; (3)、int ( *Ptr )[ 5 ]; 以上三例都是整数的二维数组,都可以用形如 Ptr[ 1 ][ 1 ] 的 方式访问其内容;但它们的差别却是很大的。下面我从四个方面对它们 进行讨论: 一、内容: 它们本身都是指针,它们的最终内容都是整数。注意我这里说 的是最终内容,而不是中间内容,比如你写 Ptr[ 0转载 2016-05-03 14:47:37 · 1031 阅读 · 0 评论 -
字符数组
一维字符数组1.用字符串常量进行初始化 char str[]="abcd";str是一个字符数组,它存放了一个字符串“abcd”,由于字符串是还有一个结束符“\0”。所以字符数组的长度是 5 而不是 4.2.用字符常量进行初始化char s1[8]={'C','o','m','p','u','t','e','r'}两者的区别的是字符串赋值是时候,字符数组需要存转载 2016-05-03 11:35:47 · 586 阅读 · 0 评论 -
Linux环境下段错误的产生原因及调试方法小结
1. 段错误是什么一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址、访问了系统保护的内存地址、访问了只读的内存地址等等情况。这里贴一个对于“段错误”的准确定义(参考Answers.com):A segmentation fault (often shortened to segfault) is a particular erro转载 2016-05-03 10:48:36 · 266 阅读 · 0 评论 -
从电脑上输入一段字符串
/* 字符串演示 */#include #include int main() {char str[10] = {};printf("请输入一个字符串:");//scanf("%s", str);fgets(str, 10, stdin);printf("字符串是%s\n", str);if (strlen(str) == 9 && str[8]原创 2016-04-14 09:44:20 · 607 阅读 · 0 评论 -
强制类型转换和地址的输出
#include int main() { int num = 10; char ch = 'a'; float fnum = 1.0f; void *p_void = NULL; p_void = # printf("p_void=%p\n", p_void);原创 2016-04-14 09:38:35 · 419 阅读 · 0 评论 -
字符十六进制转十进制
#include"stdio.h"int strhex_to_int( char *str, int start_pos, int len ){ int i, int_data=0; str += start_pos; for( i=0; i int data;转载 2016-04-26 19:56:19 · 308 阅读 · 0 评论 -
字符串命令解析
#include"stdio.h"char * str_str(char *des,char *str){ char *ptr1,*ptr2; while(*des){ ptr1=des; ptr2=str; do{原创 2016-04-13 15:37:38 · 863 阅读 · 0 评论 -
*str++简介
*str++ 和 *(str++)都是一样的,*和++的优先级是一样的,是右结合性也就是说 *str++也就是 *(str++)*str++是使用完 *str ,然后str++,转载 2016-04-13 15:02:01 · 5037 阅读 · 5 评论 -
字符数组和字符指针的区别
登录 | 注册舒夜无痕--成为更好的自己读书,是为了遇见更好的自己目录视图摘要视图订阅2016攒课第二期之你听课我买单,快来攒你想听的课! 架构免费公开课报名 2016年7月微软MVP申请开始了! c转载 2016-04-13 13:34:34 · 679 阅读 · 0 评论 -
strstr
#include"stdio.h"const char* strst(const char* str,const char* des){ const char* ptr1; const char* ptr2; if(str==NULL||des==NULL) return NULL;转载 2016-04-13 10:57:39 · 375 阅读 · 0 评论 -
strcpy
#include"stdio.h"void strpy(char *des,char const* str){ char *ptr1=des; char const *ptr2=str; while((*ptr1++=*ptr2++)!='\0'); *ptr1=0;}void main(){原创 2016-04-12 15:30:01 · 284 阅读 · 0 评论 -
strcmp
#include"stdio.h"int strcmp(char const* des,char const* str){ while(*des++==*str++){ if(*str==0) return (*des-*str); }}void main(){ char原创 2016-04-12 15:20:19 · 296 阅读 · 0 评论 -
strcat
#include"stdio.h"char *strcat(char * des,char const* str){ char *ptr1=des; char const*ptr2=str; while(*ptr1++); while((*ptr1++=*ptr2++)); *ptr1=0;原创 2016-04-12 15:02:55 · 271 阅读 · 0 评论 -
strlen
include"stdio.h"int strlen(char *str){ int num=0; while(*str++!='\0') num++; return num;}void main(){ char *str="1203456789";原创 2016-04-12 14:09:54 · 653 阅读 · 0 评论