字符串专题

简介: cin和cout在iostream头文件中,而不是stdio.h。错误输出方法:printf("%s",s);(2)strcpy(字符数组1,字符数组2)是把字符数组2复制给字符数字1,注意这里的复制包括了结束符\0(3)strcat(字符数组1,字符数字2)能把字

1.字符串I/O

#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string>
using namespace std;  
int main(){   
  char s[1000];
  //cin>>s;
  scanf("%s",s);//读到空格/换行符结束输入,注意区别
    //scanf("%s %s",s1,s2)//空格数固定已知也可以这样做
  //ps:char s[]数组也可以循环一个个输入字符
  cout<<s;
    //输出也可以用 printf("%s",s.c_str());//c_str()将string型转为字符数组输出
  system("pause");
  return 0;
}

cin和cout在iostream头文件中,而不是stdio.h。

错误输出方法:printf("%s",s);

image.png

2.getline读空格

#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string>
using namespace std;  
int main(){   
  string s;
  cin>>s;
  //getline(cin,s);//都可以,如果字符串有空格得用getline
  cout<<s;
  system("pause");
  return 0;
}

如果是char型数组str[100],也可以用getline:

char str[100];
cin.getline(str,100)

3.字符数组2种初始化

(1)和普通数组一样逐个赋值:char str[15]={'g','m','s'};


(2)直接通过字符串初始化(只有初始化可以,其他地方不能这样直接赋值整个字符串):

char str[15]="guomiansheng"

打印则用for循环逐个;printf("%c",str[i])


4.常用函数

有几个在string.h头文件下的常用的处理字符数组的函数:

(1)strlen()统计字符数组中第一个\0前的字符的个数;

(2)strcpy(字符数组1,字符数组2)是把字符数组2复制给字符数字1,注意这里的复制包括了结束符\0

(3)strcat(字符数组1,字符数字2)能把字符数组2接到字符数组1的后面。


5.string用scanf读时

在用scanf读取时,必须声明长度。不声明长度,直接scanf会出现运行时错误。

#include <stdio.h>
#include <string>
using namespace std;
int main()
{
  string a;
  a.resize(100); //需要预先分配空间
  scanf("%s", &a[0]);
  puts(a.c_str());
  return 0;
}
相关文章
ToC和ToB有啥区别
ToC(Consumer)面向普通用户服务,ToB(business)是面向企业用户服务。对公司的营销体系和商业模式而言,定位客户群体,决定产品设计、运营管理、市场营销等系列操作。 1.1 业务形态不同
9700 0
|
存储 传感器 算法
机器人操作系统ROS浅析
ROS是Robot Operating System的缩写,原本是斯坦福大学的一个机器人项目,后来由Willow Garage公司发展,目前由OSRF(Open Source Robotics Foundation, Inc)公司维护的开源项目
750 0
机器人操作系统ROS浅析
|
SQL 监控 Oracle
【MySQL实战45讲基础篇】(task3)事务隔离
ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性)。当数据库上有多个事务同时执行的时候,就可能出现脏读(dirty read)、不可重复读(non-repeatable read)、幻读(phantom read)的问题,为了解决这些问题,就有了“隔离级别”的概念。
236 0
【MySQL实战45讲基础篇】(task3)事务隔离
|
Java
解决github下载速度过慢问题
方法: 在“码云”右上角的新建仓库,找到最下面的“导入已有仓库”处
531 0
解决github下载速度过慢问题
|
SQL 关系型数据库 MySQL
【教奶奶学SQL】(task6)秋招秘籍C
练习一:行转列 假设有如下比赛结果
131 0
【教奶奶学SQL】(task6)秋招秘籍C
|
机器学习/深度学习 Ubuntu Linux
【linux】下载 | 移动 | 阅读文件 + vim和Nano使用
在目录下下载文件、阅读文件任务要点:下载文件、移动文件、阅读文件 步骤1:在home/coggle目录下,新建一个以你英文昵称(中间不要有空格哦)的文件夹A在文件夹A内部创建一个以coggle命令的文件夹B
172 0
【linux】下载 | 移动 | 阅读文件 + vim和Nano使用
|
网络协议
TCP三次握手四次挥手
=1表示确认号字段ack有效(规定:在连接建立后所有传送的报文段都必须ACK=1)。 注意:
161 0
TCP三次握手四次挥手
|
人工智能 算法 Go
年轻人创业最关心的13个问题
A:假如说创始人有一个技术背景,那是非常非常好的。但是光有技术背景还不够,因为技术跟需求对接起来才是创业的whole picture。 所以假如说你技术能力比较强的话,那你可能就需要把对人的需求感知给补充起来,然后集齐了这两个部分,你才算是有了创业的比较好的基本素质。
255 0
|
关系型数据库 MySQL Shell
MYSQL常用语句
1 常用命令 $后为Shell环境命令,>后为MySQL命令。 第一步,连接数据库。
141 0
|
SQL 网络协议 Java
IT面试
一、找工作前的准备 《王道程序员求职宝典》、《剑指 offer》、上课笔记+代码+视频、项目代码、简历。 二、面试流程 1. 一般都是先做一套笔试题,大概三十分钟。 2. HR 问一些问题,比如:为什么离职?之前在什么公司上班?薪水多少? 3. 技术面试,首先问你笔试
148 0