C/C++ 字符串输入输出
来源:互联网 发布:福州南威软件java 编辑:程序博客网 时间:2024/06/04 18:46
http://blog.sina.com.cn/s/blog_72659b8f0100wh5x.html
一、C语言
(一)
#include<stdio.h>
void main()
{
char s[20];scanf("%s",s);printf("%s\n",s);
}
(二)
#include<stdio.h>
void main()
{
char s2[20];gets(s2);puts(s2);
}
注:下面测试中 a 与 b 一样
#include <stdio.h>
void main()
{
char a[5]={"abcd"}; //最后一位存储的是'\0'puts(a);char b[5];b[0]='a';b[1]='b';b[2]='c';b[3]='d';b[4]='\0'; //'\0'的ASCII编码是 0 puts(b);
}
二、C++ 标准类库
(一)
#include <iostream>
#include <string>
using namespace std;
void main()
{
string str;//C++类 对象;不能用scanf printf输入输出 cin>>str;cout<<str<<endl;return;
}
注:
(一)所谓namespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。
class String { ... };
// somelib.h
class String { ... };
如果按照上述方式定义,那么这两个头文件不可能包含在同一个程序中,因为String类会发生冲突。
所谓命名空间,是一种将程序库名称封装起来的方法,它就像在各个程序库中立起一道道围墙。
(二)<iostream>和<iostream.h>和格式不一样:
C++标准为了和以前的C++代码(伪标准库)区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。当使用< iostream>的时候,该头文件没有定义全局命名空间,必须使用namespace std,这样才能正确使用cout。
后缀为.h的头文件c++标准已经明确提出不支持了,当使用<iostream.h>时,相当于在c中调用库函数,使用的是全局命名空间,也就是早期的c++实现。
(二)
#include <iostream>
using namespace std;
void main()
{
char a[20];
//C++标准库提供了专有的字符串类型string。必要时再用字符数组作为字符串,因为字符数组限定了输入字符串的长度
cin>>a;cout<<a<<endl;
}
三、错误:
(一)
#include<stdio.h>
void main()
{
char *s;//一个未初始化的,可存储char型地址的变量。 scanf("%s",s);
}
(二)
#include<stdio.h>
void main()
{
char s[20];scanf("%s",s);printf("%s\n",*s);//*s相当于s[0],返回一个char型字符。//正确:printf("%s\n",s);
}
四、很不合适的用法
#include<stdio.h>
void main()
{
char *a=new char();//只申请了存储一个char类型的空间,却用来存储一个字符串(尽管这样用没有错误)scanf("%s",a);printf("%s\n",a);
}
0 0
- 用%c输入输出字符串
- C字符串输入输出
- C/C++ 字符串输入输出
- C 字符串的输入输出
- C语言 输入输出字符串
- C字符串/输入输出操作 辨析
- C语言的字符串输入输出
- c/c++字符、字符串输入输出
- C语言的字符串输入输出
- 字符串的输入输出 C/C++
- C语言如何输入输出字符串
- c语言输入输出多个字符串
- 67 C语言字符串的输入输出
- C语言:gets/puts输入输出字符串
- C输入输出
- C输入输出
- C 输入输出
- C输入输出
- 使用zxing扫描二维码出现黑屏
- SYN Flood和SYN cookie
- C++如何设置默认堆栈的大小
- leetcode 日经贴,Cpp code -Linked List Cycle II
- 发布企业版应用遇到“无法安装应用程序,证书无效”、“无法下载应用程序,此时无法安装”
- C/C++ 字符串输入输出
- 逆向分析之花指令2
- ArcGIS拓扑检查步骤与修正拓扑错误技巧
- 【Shadow DOM】 渲染与隔离
- viewpager 切换到前面的页面出现空问题
- 第八周项目1 实现复数类中的运算符重载
- 3.22
- ubuntu 下postgresql入门
- Oracle SQL 交集 intersect 与差集minus