常用字符串操作

2021-04-20  本文已影响0人  乘瓠散人
  1. C语言中字符串的灵活性:
#include<iostream>
#include<stdio.h>
#include<cstring>
using namespace std;

int main()
{
    char s1[205];
    scanf("%s",s1+1);
    int len=strlen(s1+1);  //字符个数
    for(int i=1;i<=len;i++)
        cout<<s1[i];
    return 0;
}
  1. C++在string头文件中定义了string类型,支持流式读写。string有很多方便的函数和运算符,但是速度慢。
#include<iostream>
#include<string>
#include<sstream>
using namespace std;

int main()
{
    string line;
    while(getline(cin,line))
    {
        int sum=0, x;
        stringstream ss(line);
        while(ss >> x) sum+=x;
        cout<<sum<<endl;
    }
    return 0;
}

string类在<string>头文件中,stringstream在sstream头文件中。
首先用getline函数读取一行数据(相当于C语言中fgets,但由于使用string类,无须指定字符串的最大长度),然后用这一行创建一个字符串流ss,接下来只需像读取cin那样读取ss即可。

  1. 常用字符串处理函数
  1. gets(s)函数
    gets()函数用来从标准设备读取字符串直到换行符结束,但是换行符会被丢弃,然后在末尾添加'\0'字符。而scanf遇到空格就会认为当前字符串结束
    gets()遇到'\n'停止读取,不会把'\n'包含到字符串里,但是其对应的puts()函数却在输出字符串时会自动换行
sprintf(buf, "%d%d%d%d%d", abc,de,x,y,z);  //输入到缓冲区buf
sscanf(s, "%lf %d", &p, &q); //从s读取p,q

atof(str) 将字符串转成浮点数
atoi(str) 将字符串转成整数
头文件<stdlib.h>

#define BUFLEN 256
static char linebuf[BUFLEN];
fgets(linebuf,BUFLEN,fin); //读取一行数据,可以有空格
sscanf(linebuf,"%s %s %s",tokenString,typeString,lineMsg);

C++小数后保留2位
cout<<fixed<<setprecision(2)<<ans<<endl; 头文件为<iomanip>
C小数后保留2位
printf("%.2f\n",ans);

上一篇 下一篇

猜你喜欢

热点阅读