您的位置:首页 > 其它

CODEVS 整数、浮点数、字符串

2018-01-15 12:16 127 查看

浮点数处理

关于printf的格式控制 一般形式

%(flags)(width)(.prec)type

类型type

o(八进制输出无符号整数 不输出前缀0)

x/X(十六进制输出无符号整数 不输出前缀0x)

u(十进制输出无符号整数)

f(以小数形式输出单、双精度实数)

e,E (以指数形式输出单、双精度实数)

g,G(以%f或%e中较短的输出宽度输出单、双精度实数)

(大小写的区别在于输出中的字母是大写还是小写)

p 如果是参数是“void *”型指针则使用十六进制格式显示。

标志flags

‘-’ 结果左对齐,右边填空格

‘+’ 输出符号(正号或负号)

‘ ’ 输出值为正时冠以空格,为负时冠以负号

‘#’

对c、s、d、u类无影响;

对o类,在输出时加前缀o;

对x类,在输出时加前缀0x;

对e、g、f 类当结果有小数时才给出小数点

‘0’ 当有指定参数时,无数字的参数将补上0。默认是关闭此旗标,所以一般会打印出空白字符。

宽度width

参数的最小长度

若此栏并非数值,而是*符号,则表示以下一个参数当做参数长度

精度.prec(隐含的精度为6)

正整数的最小位数。

在浮点型数中代表小数位数

在%g 格式代表有效位数的最大值。

在%s格式代表字符串的最大长度。

若为*符号则代表下个参数值为最大长度。

printf的格式控制的完整格式:

% - 0 m.n l或h 格式字符

下面对组成格式说明的各项加以说明:

①%:表示格式说明的起始符号,不可缺少。

②-:有-表示左对齐输出,如省略表示右对齐输出。

③0:有0表示指定空位填0,如省略表示指定空位不填。

④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。

⑤l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。

tips

如果想输出字符”%”,则应该在“格式控制”字符串中用连续两个%表示,如:

printf(“%f%%”, 1.0/3);

输出0.333333%。

对于m.n的格式还可以用如下方法表示(例)

char ch[20];

printf(“%*.*s/n”,m,n,ch);

前边的*定义的是总的宽度,后边的定义的是输出的个数。分别对应外面的参数m和n 。我想这种方法的好处是可以在语句之外对参数m和n赋值,从而控制输出格式。

舍入函数

floor()是向负无穷大舍入,floor(-10.5) == -11;

ceil()是向正无穷大舍入,ceil(-10.5) == -10

round()是四舍五入,ceil

字符串处理

c标准字符串的库函数

字符串操作

strcpy(p, p1) 复制字符串

strncpy(p, p1, n) 复制指定长度字符串

strcat(p, p1) 附加字符串

strncat(p, p1, n) 附加指定长度字符串

strlen(p) 取字符串长度

strcmp(p, p1) 比较字符串

strcasecmp忽略大小写比较字符串

strncmp(p, p1, n) 比较指定长度字符串

strchr(p, c) 在字符串中查找指定字符

strrchr(p, c) 在字符串中反向查找

strstr(p, p1) 查找字符串

strpbrk(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找该集合的任一元素

strspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找不属于该集合的任一元素的偏移

strcspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找属于该集合的任一元素的偏移

( 具有指定长度的字符串处理函数在已处理的字符串之后填补零结尾符

字符串到数值类型转换

strtod(p, ppend) 从字符串 p 中转换 double 类型数值,并将后续的字符串指针存储到 ppend 指向的 char* 类型存储。

strtol(p, ppend, base) 从字符串 p 中转换 long 类型整型数值,base 显式设置转换的整型进制,设置为 0 以根据特定格式判断所用进制,0x, 0X 前缀以解释为十六进制格式整型,0 前缀以解释为八进制格式整型

atoi(p) 字符串转换到 int 整型

atof(p) 字符串转换到 double 符点数

atol(p) 字符串转换到 long 整型

字符检查

isalpha() 检查是否为字母字符

isupper() 检查是否为大写字母字符

islower() 检查是否为小写字母字符

isdigit() 检查是否为数字

isxdigit() 检查是否为十六进制数字表示的有效字符

isspace() 检查是否为空格类型字符

iscntrl() 检查是否为控制字符

ispunct() 检查是否为标点符号

isalnum() 检查是否为字母和数字

isprint() 检查是否是可打印字符

isgraph() 检查是否是图形字符,等效于 isalnum() | ispunct()

c++字符串处理

1.定义和构造初始化

a) string s; //生成一个空字符串s

b) string s(str) //拷贝构造函数 生成str的复制品

c) string s(str,stridx) //将字符串str内“始于位置stridx”的部分当作字符串的初值

d) string s(str,stridx,strlen) //将字符串str内“始于stridx且长度顶多strlen”的部分作为字符串的初值

e) string s(cstr) //将C字符串作为s的初值

f) string s(chars,chars_len) //将C字符串前chars_len个字符作为字符串s的初值。

g) string s(num,c) //生成一个字符串,包含num个c字符

h) string s(beg,end) //以区间beg;end(不包含end)内的字符作为字符串s的初值

i) s.~string() //销毁所有字符,释放内存

2.字符串操作函数

1) =,assign() //赋以新值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  codevs