字符串操作!

[复制链接]
发表于 2023-12-31 10:41:27 | 显示全部楼层 |阅读模式
字符串操作!
头文件:<cstring>。printf和scanf在<cstdio>中,cin和cout在头文件<iostream>中且位于
std命名空间内。
下面假设待处理的字符串为str和str2,即:charstr[MAX], str2[MAX]; 牢记,字符串的最后一个字符一定是'\0'。如果字符串内没有'\0',进行以下操作(输入除外)时可能
会造成意外事故。 1.输出字符串str
Ÿ  cout<<str;
Ÿ  printf("%s",str);  // 输出到文件:fprintf(fout,"%s", str);
2.  输入字符串str
Ÿ  scanf("%s", str);  // 输出到文件:fscanf(fin,"%s", str);
Ÿ  cin>>str;
以上两种方法在输入时会忽略空格、回车、TAB等字符,并且在一个或多个非空格字符后面输入空格时,会终止输入。
Ÿ  fgets(str, MAX, fin);  
每调用一次,就会读取一行的内容(即不断读取,直到遇到回车停止)。
3.  求字符串str的长度:strlen(str)  // 这个长度不包括末尾的'\0'。
4.  把字符串str2连接到字符串str的末尾:strcat(str,str2) Ÿ str的空间必须足够大,能够容纳连接之后的结果。
Ÿ  连接的结果直接保存到str里。函数返回值为&str[0]。
Ÿ  strncat(str, str2, n)是把str2的前n个字符连接到str的末尾。
5.  把字符串str2复制到字符串str中:strcpy(str,str2)
6.  比较strstr2的大小:strcmp(str, str2) 如果str>str2,返回1;如果str==str2,返回0;如果str<str2,返回-1。
7.  在str中寻找一个字符c:strchr(str,c) 返回值是一个指针,表示c在str中的位置。用strchr的返回值减str,就是具体的索引位置。
8.  在str中寻找str2:strstr(str, str2)
Ÿ  返回值是一个指针,表示str2在str中的位置。用strstr的返回值减str,就是具体的索引位置。
Ÿ  此问题可以用KMP算法解决。KMP算法很复杂,在NOIP范围内用途不大。
9.  从str中获取数据:sscanf(str,"%d", &i); 格式化字符串:sprintf(str,"%d", i); 它们和fscanf、fprintf非常像,用法也类似。可以通过这两个函数进行数值与字符串之间的转换。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表