【CPP】字符串和格式化输入输出

前导:数组(array),字符串转换说明符%s,定义符号常量,,strlen()获取字符串长度,。

【字符串】

没有专门的字符串类型,是吧他存储在字符型数组中,数组最后一个字符为空字符‘\0‘,c用他来标志字符串的结束,这个非打印字符不会被打印出来,但这意味着数组单元的长度必须比字符串的长度至少大一。

【使用字符串】

#include<stdio.h>
int main(void)
{
    char name[40];//定义字符数组
    printf("what‘s your name?\n");
    scanf("%s",name);//注意:输入字符串时没有用到&符号
    printf("Hello %s !",name);
    return 0;
}

注意:scanf()读取时会在遇到的第一个空格,制表符,换行符处停止。

【字符和字符串】

字符‘x‘是基本类型(char),存储为[x]

字符串"x"是派生类型(char数组),存储为[x][\0]

【strlen()函数】

sizeof运算符,以字节为单位给出数据大小,

strlen()函数,以字符为单位给出字符串长度,

一个字符占一个字节,但这他们得出的结果并不一样。

#include<stdio.h>
#include<string.h>//提供strlen()函数的原型 ,他包含了许多与字符串相关的函数的原型
#define PRAISE "what a marvelous name!"
int main(void)
{
    char name[40];
    printf("what‘s your name?\n");
    scanf("%s",name);
    printf("Hello %s !",name);

    printf("your name of %d letters occupies %d memory cells.\n",strlen(name),sizeof name );
    printf("the phrase of praise has %d letters.\n",strlen(PRAISE));
    printf("and occupies %d memory cells.\n",sizeof PRAISE );

    return 0;
}

从这个例子可以看到,sizeof得到的是数据占用的大小,即使、申请的字符数组没有填满,也算作他的大小,自然地字符串末尾的非打印字符‘\0‘也算作占用的大小。

而strlen()就是计算字符串的长度而已,当然也就不包括‘\0‘。

注:size可以带()也可以不带,当需要获取某个类型大小时圆括号是必须的,但某个具体量(如6.28,"Hello")时则可有可无。

【常量和C预处理器】

#define PI 3.14159//定义一个符号常量
#define BEEP ‘\a‘
#define OOPS "now you have done it !"
#define COST 3

这是在C预处理器完成的,注意要大写常量。

const修饰符:const关键字可以吧一个变量声明转换成常量声明,使其成为只读值,

这种方式更为灵活。

const int SCORE = 89;//SCORE是一个值为89的符号常量

系统定义的常量:头文件limits.h和float.h分别提供整型和浮点型

//例如limits.h文件包含下面类似的行
#define INT_MAX +32767
#define INT_MIN -32768

【研究和利用printf()和scanf()】

仅允许非商业转载,转载请注明出处:

https://i.cnblogs.com/EditPosts.aspx?postid=7082749

时间: 2024-10-10 21:05:15

【CPP】字符串和格式化输入输出的相关文章

C语言学习(二)——字符串和格式化输入输出

C语言学习(二)——字符串和格式化输入输出 1.char数组类型和空字符 C没有为字符串定义专门的变量类型,而是把它存储在char数组里.数组的最后一个位置显示字符\0.这个字符就是空字符,C用它来标记字符串的结束,其ASCII码的值为(或者等同于)0.C的字符串存储时通常以这个空字符结束,该字符的存在意味着数组的单元数必须至少比要存储的字符数多1.计算机可以自己处理大多数这些细节问题(例如,scanf( )会添加'\0'使得数组内容成为C字符串). 2.strlen( )函数与sizeof运算

C/C++格式化输入输出

要实现格式化输入输出,程序需要包含 iostreams 标准标头 <iomanip> 以定义几个各自采用单个参数的操控器. 备注: 其中每个操控器都返回重载 basic_istream<Elem, Tr>::operator>> 和 basic_ostream<Elem, Tr>::operator<< 的未指定类型(名为 T1 到 T10). 操控器 操控器方法 备注  get_money 获取货币金额(可选择采用国际格式). get_time

C++格式化输入输出

要实现格式化输入输出,程序需要包含 iostreams 标准标头 <iomanip> 以定义几个各自采用单个参数的操控器. 备注: 其中每个操控器都返回重载 basic_istream<Elem, Tr>::operator>> 和 basic_ostream<Elem, Tr>::operator<< 的未指定类型(名为 T1 到 T10). 操控器 标准输入输出流的控制符 控制符 作用 get_money 获取货币金额(可选择采用国际格式).

实验二 格式化输入输出和分支语句

实验2 格式化输入输出和分支语句 实验目的 1. 掌握格式字符的使用方法,特别是%d, %f, %c, %s的基础用法,以及%lf和%ld使用注意事项 2. 掌握格式化输出函数printf()和格式化输入函数scanf()的用法 3. 掌握单个字符输出函数putchar()和单个字符输入函数getchar()的用法 4. 理解分支结构,掌握if语句和if...else语句的用法 5. 掌握switch语句的用法 实验内容 Part1: 格式化输出函数printf()和格式化输入函数scanf()

yield生成器及字符串的格式化

一.生成器 1 def ran(): 2 print('Hello world') 3 yield 'F1' 4 5 print('Hey there!') 6 yield 'F2' 7 8 print('goodbye') 9 yield 'F3' 10 11 ret = ran() # ran()称为生成器函数,ret才是生成器,仅仅具有一种生成能力,函数内部要有关键字yield 12 print(ret) 13 14 res = ret.__next__() #对生成器进行循环操作,遇到y

字符串:格式化

一.字符串格式化的format方法 format方法接受位置参数和关键字参数 #位置参数 >>> "{0} love {1}".format('I','you') 'I love you' #关键字参数 >>> "{a} love {b}".format(a='I',b='you') 'I love you' #位置参数和关键词参数可以混用,但是位置参数必须在关键词参数之前 >>> "{0} love

字符串与格式化输入/输出

//主要是数组的scanf用法和strlen sizeof 的区别#include<stdio.h>#define DENSITY 62.4int main(void){ float weight ,volume; int size ,letters; char name[40]; printf("Hi!What's your first name?\n"); scanf("%s",name); printf("%s,what's your w

HTML代码,CSS代码,JSON字符串在线格式化,美化工具

HTML代码,CSS代码,JSON字符串在线格式化,美化工具 http://www.phpthinking.com/format.htm

Javascript字符串的格式化

格式化字符串 String.prototype.format = function(args) { var result = this; if (arguments.length < 1) { return result; } var data = arguments; //如果模板参数是数组 if (arguments.length == 1 && typeof (args) == "object") { //如果模板参数是对象 data = args; } f