首页 > 其他 > 详细

字符串操作

时间:2016-01-05 00:12:06      阅读:223      评论:0      收藏:0      [点我收藏+]

字符串操作

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

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

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

  1. 输出字符串str

?   cout<<str;

?   printf("%s",str);     // 输出到文件:fprintf(fout, "%s", str);

  1. 输入字符串str

?   scanf("%s", str);    // 输出到文件:fscanf(fin, "%s", str);

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

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

  1. 求字符串str的长度:strlen(str)     // 这个长度不包括末尾的‘\0‘。
  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);
      它们和fscanf、fprintf非常像,用法也类似。可以通过这两个函数进行数值与字符串之间的转换。

字符串操作

原文:http://www.cnblogs.com/jjzzx/p/5100568.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!