• 字符串操作


    字符串操作

    头文件:<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);
  • 相关阅读:
    线程
    数据类型转换
    复合赋值运算符
    算数运算符
    apache自带的ab压力测试工具用法详解
    创建一个方便快捷实验环境快照
    安装中文版cacti监控华为交换机流量并实现95计费
    虚拟机拷贝后网卡eth0变成了eth1的解决办法
    解压版Tomcat配置
    PLSQL不好用,提示ora-12514 错误解决方法
  • 原文地址:https://www.cnblogs.com/jjzzx/p/5100568.html
Copyright © 2020-2023  润新知