C语言字符串的宗旨选取,字符串转十三进制数的标题

RT,笔者怕是个傻帽。从文件里读出来的是constchar*的字符串,比方“01010001000401000001”TCP发送函数参数选取方是按十八进制选用剖断的。难题是自身要怎么把ASCII码的这种字符串转成16进制的数据发出去。

字符串基本接受

  • 能够选用数组来保存字符串
  • 字符串变量和通常的字符数组是有一定差距的
  • C语言规定:字符串必须以\0
    结尾(作为字符串的收尾符号),所以字符串变量的成分个数比字符数组的因素个数多三个
    \0

char str[] = "yfch";
1.字符主意
  • charAt():选取三个参数,即基于0的字符索引值,再次回到给定地点的百般字符

var str = "hello world";
console.log( str.charAt(1) );       //e
  • charCodeAt():选拔的参数同上,重返给定地方的那么些字符的字符编码

var str = "hello world";
console.log( str.charCodeAt(1) );       //101
  • ES5还定义了另三个做客个别字符的格局:(IE7及以下重返undefined

var str = "hello world";
console.log( str[1] );       //e
怎样输出字符串?
  • 使用%s 占位符
  • 从传播的地方初始,知道碰着\0结束

char str[] = "yfch";
char str2[] = {'y', 'f', 'c', 'h'};

printf("str = %s\n",str); // str = yfch

printf("str2 = %s\n",str2); // str2 = yfchyfch

char str[] = "yfch";
char str2[] = {'y', '\0', 'c', 'h'};

printf("str = %s\n",str); // str = yfch

printf("str2 = %s\n",str2); // str2 = y
2.字符串操作
  • concat():形似数组的concat()主意,用于拼接字符串,重临拼接得到的新字符串,不转移原数组;不过施行中动用“+”加号拼接更为广阔也更方便人民群众,非常是在有两个字符串拼接的情事下
  • slice():返回被操作字符串的三个子字符串,接纳大器晚成或五个参数,分别表示开始地方,甘休地方

var str = "hello world";
console.log( str.slice(3) );       //lo world;只有一个参数,表示从起始位置至当前字符串末尾
console.log( str.slice(3,7) );     //lo w;有2个参数时,返回的新字符串不包括结束位置的项
console.log( str.slice(4,1) );   //起始位置小于结束位置时,返回空字符串
console.log( str.slice(-3) );      //rld;参数为负数时,用长度加上该数计算;str.slice( 11+(-3) )
console.log( str.slice(3,-4) );    //lo w;同上,str.slice(3,7)
console.log(str);                  //hello world;不改变原字符串
  • substr():重返值同slice();选择大器晚成或四个参数,表示开头地方和截取个数

var str = "hello world";
console.log( str.substr(3) );       //lo world;只有一个参数,表示从起始位置至当前字符串末尾
console.log( str.substr(3,7) );     //lo worl;第2个参数,表示截取长度
console.log( str.substr(-3) );      //rld;第一个参数为负数时,和长度相加;str.substr( 11+(-3) )
console.log( str.substr(3,-4) );    //返回空字符串;第二个参数为负数时,转换为0,因此没有截取长度
console.log(str);                   //不改变原字符串
  • substring():重返值和参数都和slice()相通;分化在操作方法

var str = "hello world";
console.log( str.substring(3) );       //lo world;只有一个参数,表示从起始位置至当前字符串末尾
console.log( str.substring(3,7) );     //lo w;有2个参数时,返回的新字符串不包括结束位置的项
console.log( str.substring(-3) );      //hello world;参数为负数时,都转换为0
console.log( str.substring(3,-4) );    //hel;参数转换为0后变成str.substring(3,0),但是substring会把较小的数作为起始位置,较大的数作为结束位置,因此相当于str.substring(0,3)
console.log(str);                      //不改变原字符串
字符串起先化
  • 字符串以\0结尾,没有\0就不是字符串
  • 生龙活虎旦是用双引号括起来的都以字符串
  • 字符串的真相正是数组

char str1[] = "yaof";
char str2[] = {'y', 'f', 'c', '\0'};
// 数组的部分初始化,没有被初始化的元素默认是0
// \0对应的ASCII中的值 0
char str3[10] = {'y', 'f', 'c'};

// 以上三种方式都是字符串

// 下面这两种方式不是字符串,而是字符数组
// 因为没有\0
char str4[3] = {'y', 'f', 'c'};
char str5[] = {'y', 'f', 'c'};
3.岗位方法

参考数组的indexOf()lastIndexOf()方法

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图