C语言substring截取字符串串用地址和用下标的打印%p?

在C语言中,常常会对字符进行各种输入输出等多项操作,在这里总结一下在C语言中对字符的各种操作方法。对字符型数据存储变量的定义:char ch='a'; //单个字符用单引号
char str[]="hello"; //字符串用双引号
注:如果是存储字符串的变量,只能定义为数组或者是指针的形式
char str="hello";//这种定义形式是错误的
char *str="hello";//正确
使用printf打印字符:
printf("%c\n",ch);//单个字符打印用%c
printf("%s\n",str);//打印字符串用%s
/*****字符数组*****/
char array[30]={'a','b','c'};
char str1[30]={"hello world"};
/*****单个字符的输入输出*****/
char ch;
getchar(ch); //从键盘获取输入的字符
putchar(ch); //输出从键盘获取的字符,并自动换行
/*****字符串的输入输出*****/
char ch[30];
gets(ch); //从键盘获取输入的字符串
puts(ch); //输出从键盘获取的字符,并自动换行
字符串的打印也可以通过遍历循环通过printf函数来打印。
//在字符和字符串的输入输出函数里面,放入地址(字符串首地址或是指针),就会自动输出打印数组里面的字符串
对字符的获取与打印可以通过上面的函数很快的实现,当然,获取到字符之后也可以调用相应的库函数对字符或字符串进行操作。在调用C库函数之前,先要添加头文件。#include<string.h>
在程序编写过程中,通常会使用到下面这些字符串函数:#include<stdio.h>
#include<string.h>//在函数调用之前,先要添加头文件声明
/*********字符串函数********/
char a[30]="hello world";
char b[30]="sunshine";
//字符串长度函数
int n=strlen(a);//计算数组a中字符串的长度,并将长度数值返回到n中
int k=strlen(b);
//字符串拷贝函数
strcpy(a,b);//将b数组中的字符串拷贝到a中
//字符串连接函数
strcat(a,b);//将b中的字符串连接到a字符串的后面
字符串是以'\0'来结束,在字符串操作过程中,可以使用*p='\0'来去除垃圾字符。
//字符串比较函数
strcmp(str1,str2);//字符串1和字符串2按照ACSll码值大小比较
strcmp()具体如下:
1、两个字符串从左到右按照 ACSII 码值大小比较,直到出现不同的字符或者遇到’\0’为止;2、若出现不相同的字符,则以第一对不相同的字符的比较结果为准;3、字符串1等于字符串2,函数值为0,字符串1大于字符串2,函数值为正整数,字符串1小于字符串2,函数值为负整数;4、两个字符串不能直接用str1>str2这种方式比较,必须用strcmp()函数。**
在使用这些字符串函数的时候,最好是自己写一遍,自己写一个函数来实现这些功能,这样更方便自己的理解,而且很多的笔试题也会考这些,自己多练练更好,与君共勉。}
printf 是 print format 的缩写,意思是“格式化打印”。printf 的返回值是成功打印的字符的个数。printf("%d",a);
d 是 decimal 的缩写,意思是十进制数,%d 表示以十进制整数的形式输出。%d 与 a 是对应的,用 abc 的值来替换 %d。%d称为格式控制符,它指明了以何种形式输出数据。格式控制符说明%c输出一个单一的字符%hd、%d、%ld以十进制、有符号的形式输出 short、int、long 类型的整数%hu、%u、%lu以十进制、无符号的形式输出 short、int、long 类型的整数%ho、%o、%lo以八进制、不带前缀、无符号的形式输出 short、int、long 类型的整数%#ho、%#o、%#lo以八进制、带前缀、无符号的形式输出 short、int、long 类型的整数%hx、%x、%lx、%hX、%X、%lX以十六进制、不带前缀、无符号的形式输出 short、int、long 类型的整数。如果 x 小写,那么输出的十六进制数字也小写;如果 X 大写,那么输出的十六进制数字也大写。%#hx、%#x、%#lx、%#hX、%#X、%#lX以十六进制、带前缀、无符号的形式输出 short、int、long 类型的整数。如果 x 小写,那么输出的十六进制数字和前缀都小写;如果 X 大写,那么输出的十六进制数字和前缀都大写。%f、%lf以十进制的形式输出 float、double 类型的小数%e、%le、%E、%lE以指数的形式输出 float、double 类型的小数。如果 e 小写,那么输出结果中的 e 也小写;如果 E 大写,那么输出结果中的 E 也大写。%g、%lg、%G、%lG以十进制和指数中较短的形式输出 float、double 类型的小数,并且小数部分的最后不会添加多余的 0。如果 g 小写,那么当以指数形式输出时 e 也小写;如果 G 大写,那么当以指数形式输出时 E 也大写。%s输出一个字符串%p、%P表示以十六进制的形式(带小写的前缀)输出数据的地址。如果写作%P,那么十六进制的前缀也将变成大写形式。%%用来输出%;hd 是 short decimal 的简写;d 是 decimal 的简写;u 是 unsigned int 的简写;o 是 octonary 的简写x 是 hexadecimal的简写;ld 是 long decimal 的简写;c 是 character 的简写;s 是 string 的简写;f 是 float 的简写;%g是小数中一种智能的输出方式,%g 会对比小数的十进制形式和指数形式,以最短的方式来输出小数,让输出结果更加简练。所谓最短,就是输出结果占用最少的字符。%lg用来输出double类型的小数。注意:%o,%x都只能用来输出无符号数,输出有符号数时会使用补码输出,值会发生改变,因为int类型可以自动类型转换为unsigned.%f 和 %lf 默认保留六位小数,不足六位以 0 补齐,超过六位按四舍五入截断。以指数形式输出小数时,输出结果为科学计数法,尾数部分的取值为:0 ≤ 尾数 < 10。%g 默认最多保留六位有效数字,包括整数部分和小数部分;%f 和 %e 默认保留六位小数,只包括小数部分。%g 不会在最后强加 0 来凑够有效数字的位数,而上面说的 %f 和 %e 会在最后强加 0 来凑够小数部分的位数。十六进制数字的表示用到了英文字母,有大小写之分,要在格式控制符中体现出来:%hx、%x 和 %lx 中的x小写,表明以小写字母的形式输出十六进制数;%hX、%X 和 %lX 中的X大写,表明以大写字母的形式输出十六进制数。区分不同进制数字的一个简单办法就是,在输出时带上特定的前缀。在格式控制符中加上#即可输出前缀,例如 %#x、%#o、%#lX、%#ho 。puts 输出完成后会自动换行,而 printf 不会。puts只能输出字符串,printf可以自己定义输出格式。printf()格式控制符%[flag][width][.precision]type
其中:type 表示输出类型,比如 %d、%f、%c、%lf,type 就分别对应 d、f、c、lf;再如,%-9d中 type 对应 d。type 这一项必须有,这意味着输出时必须要知道是什么类型。width 表示最小输出宽度,也就是至少占用几个字符的位置;%-4d中 width 对应4,表示输出结果最少占用4个字符的宽度,-表示向左对齐。没有对齐方式,默认右对齐,即在左面补齐空格。当输出结果的宽度不足 width 时,以空格补齐(如果没有指定对齐方式,默认会在左边补齐空格);当输出结果的宽度超过 width 时,width 不再起作用,按照数据本身的宽度来输出。.precision 表示输出精度,也就是小数的位数。当小数部分的位数大于 precision 时,会按照四舍五入的原则丢掉多余的数字;当小数部分的位数小于 precision 时,会在后面补 0。flag 是标志字符。标志字符含义--表示左对齐。如果没有,就按照默认的对齐方式,默认一般为右对齐。+用于整数或者小数,表示输出符号(正负号)。如果没有,那么只有负数才会输出符号。空格用于整数或者小数,输出值为正时冠以空格,为负时冠以负号。#对于八进制(%o)和十六进制(%x / %X)整数,# 表示在输出时添加前缀;八进制的前缀是 0,十六进制的前缀是 0x / 0X。对于小数(%f / %e / %g),# 表示强迫输出小数点。如果没有小数部分,默认是不输出小数点的,加上 # 以后,即使没有小数部分也会带上小数点。
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
}
概念1.C语言本身不提供输入输出语句 printf函数和scanf函数并不是输入输出语句,而是一个库函数,它的语句叫做函数调用语句2.在程序开头用预处理指令#include把有关头文件放在本程序中如#include<stdio.h>用printf函数输出数据1.printf函数的一般格式一般格式为printf(格式控制,输出表列)例如printf("%d,%c\n",i,c);括号内包括两部分 “格式控制”,包括两个信息 格式声明,由“%”和格式字符组成,如%d等。其作用是将输出数据转换为指定的格式输出 普通字符,即需要原样输出的字符,例如双撇号内的逗号、空格和换行符 输出表列:程序需要输出的一些数据,可以是常量、变量或表达式。例如上面的i,c2.格式字符zZ20oj.png1.d格式符:用于输出一个有符号的十进制整数可以在格式声明中指定输出数据的**域宽**(所占的列数)。如"%5d",即指定输出数据占5列,输出的数据显示在此5列区域的右侧。如
printf("%5d%5d\n",12,-345);输出结果为12
(12前面有3个空格)-345
(-345前面有1个空格)2.c格式符:用来输出一个字符例如char ch='a';
printf("%c",ch);运行时输出a c格式符也可以指定域宽一个整数,若在0-127范围内,也可以用"%c"使之按字符形式输出3.s格式符:用于输出字符串4.f格式符:用于输出实数。以小数形式输出(1)基本型,用%f 一般是实数中的整数部分全部输出,小数部分输出6位(2)指定数据宽度和小数位数,用%m.nf m代表输出的域宽n代表小数尾数(3)输出的数据向左对其,用%-m.nf5.e格式符:以指数形式输出实数6.其他格式符(1)i格式符 作用与d格式符相同,按十进制整型数据的实际长度输出(2)o格式符 以八进制整数形式输出(3)x格式符 以十六进制整数形式输出(4)u格式符 输出无符号型数据,以十进制整数形式输出(5)g格式符 用来输出浮点数,系统自动选择f格式或e格式输出用scanf函数输入数据scanf函数的一般形式scanf(格式控制,地址表列) “格式控制”的含义如同print函数。“地址表列”是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。scanf函数中的格式声明与print函数类似zwUdyD.png使用scanf函数时应注意的问题scanf函数中的格式控制后面应当是变量地址,而不是变量名scanf("%f%f%f",a,b,c);是不对的,应为scanf("%f%f%f",&a,&b,&c);如果在格式控制字符串中除了格式声明以外还有其他字符,则在输入数据时在对应位置上应输入与这些字符
相同的字符scanf("a=%f,b=%f,c=%f",&a,&b,&c);应输入a=1,b=2,c=3在用“%c”格式声明输入字符时,空格字符和“转义字符”中的字符都作为有效字符输入例如:scanf("%c%c%c",&a,&b,&c);需要输入abc中间不要有空格在输入数值数据时,如输入空格、回车、Tab键或遇非法字符(不属于数值的字符),认为该数据结束字符输入输出函数用putchar函数输出一个字符putchar(c)zwwKQf.jpg用getchar函数输入一个字符gerchar(c)zwwMy8.jpg}

我要回帖

更多关于 substring截取字符串 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信