zoukankan      html  css  js  c++  java
  • 字符串操作

    字符串操作

    头文件:<cstring>。printf和scanf在<cstdio>中,cin和cout在头文件<iostream>中且位于std命名空间内。

    下面假设待处理的字符串为str和str2,即:char str[MAX], str2[MAX];

    牢记,字符串的最后一个字符一定是''。如果字符串内没有'',进行以下操作(输入除外)时可能会造成意外事故。

    1. 输出字符串str

    Ÿ   cout<<str;

    Ÿ   printf("%s",str);    

    1. 输入字符串str

    Ÿ   scanf("%s", str);   

    Ÿ   cin>>str;
    以上两种方法在输入时会忽略空格、回车、TAB等字符,并且在一个或多个非空格字符后面输入空格时,会终止输入。

    Ÿ   fgets(str, MAX, fin);
    每调用一次,就会读取一行的内容(即不断读取,直到遇到回车停止)。

    1. 求字符串str的长度:strlen(str)     // 这个长度不包括末尾的''。
    2. 把字符串str2连接到字符串str的末尾:strcat(str, str2)

    Ÿ   str的空间必须足够大,能够容纳连接之后的结果。

    Ÿ   连接的结果直接保存到str里。函数返回值为&str[0]。

    Ÿ   strncat(str, str2, n)是把str2的前n个字符连接到str的末尾。

    1. 把字符串str2复制到字符串str中:strcpy(str, str2)
    2. 比较strstr2的大小:strcmp(str, str2)
      如果str>str2,返回1;如果str==str2,返回0;如果str<str2,返回-1。
    3. str中寻找一个字符cstrchr(str, c)
      返回值是一个指针,表示c在str中的位置。用strchr的返回值减str,就是具体的索引位置。
    4. str中寻找str2strstr(str, str2)

    Ÿ   返回值是一个指针,表示str2在str中的位置。用strstr的返回值减str,就是具体的索引位置。

    Ÿ   此问题可以用KMP算法解决。KMP算法很复杂,在NOIP范围内用途不大。

            1. str中获取数据:sscanf(str, "%d", &i);
              格式化字符串:sprintf(str, "%d", i);功能:把格式化的数据写入某个字符串中;返回值:字符串长度
              数字转字符串:使用sprintf()函数
              sprintf(s, "%d", 123); //产生"123",这样字符串S就是"123",返回结果为:3(这是字符串S的长度)
            2. 字符串转数字:使用sscanf()函数
            3. char str[]="1234321";    int a;    sscanf(str,"%d",&a);
  • 相关阅读:
    vue-fullcalendar插件
    iframe 父框架调用子框架的函数
    关于调试的一点感想
    hdfs 删除和新增节点
    hadoop yarn 实战错误汇总
    Ganglia 安装 No package 'ck' found
    storm on yarn(CDH5) 部署笔记
    spark on yarn 安装笔记
    storm on yarn安装时 提交到yarn失败 failed
    yarn storm spark
  • 原文地址:https://www.cnblogs.com/jjzzx/p/5100568.html
Copyright © 2011-2022 走看看