字符串操作(一)

知道会不会有第二篇,暂且先写个一吧!

字符串操作首先,不要忘记  #include<string.h>

引入头文件之后便是输入输出:

    getchar(),如:a=getchar();  //每次读取一个字符

    putchar(),如:putchar(' ');

    gets(),   如:gets(string1);    //可接受回车键之前输入的所有字符

    puts()   如:puts(string2);   //把string2中的字符串输出,将''转换为回车换行

    也可以用scanf("%s",a[i]);

接下来是常用函数

        strcat (str1,str2) : 把字符串str2接到str1后面,str1最后的’’被取消。

        strchr (str ,ch)  : 找出str字符串中第一次出现字符ch的位置。

        strcmp(str1,str2): 比较两个字符串,若str1小于str2返回负数,相等返回0,大于正数。

        strcpy(str1,str2):  把str2指向的字符串复制到str1中去。

        strcpy( str1,str2, n):把str2中最前面的n个字符复制到str1中,取代str1中原有的最前面的n个字符

        strlen(str)     : 统计字符串str中的字符的个数(不包括’’)。

        strstr(str1,str2)  :  找出str2字符串在str1字符串中第一次出现的位置。返回该位置指针。

        strlwe(str1) :将str1中的大写字母换成小写字母  (low->大到小)

         strupr(str1):将str1中的小写字母转换成大写字母 (up->小到大)

然后就来看一道PTA简单题好了

7-29 删除字符串中的子串(20 分)

输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。

输入格式:

输入在2行中分别给出不超过80个字符长度的、以回车结束的2个非空字符串,对应S1和S2。

输出格式:

在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串。

输入样例:

Tomcat is a male ccatat
cat

输出样例:

Tom is a male
 
 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<math.h>
 4 #include <string.h>
 5 /*
 6 输入在2行中分别给出不超过80个字符长度的、
 7 以回车结束的2个非空字符串,对应S1和S2。
 8 在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串
 9 */
10 
11 int main()
12 {
13     char str1[81];
14     char str2[81];
15     char str3[81];
16     char *p;
17 
18     gets(str1);
19     gets(str2);
20     while(( p=strstr(str1,str2))!=NULL){
21         *p = '';
22         strcpy( str3,p+strlen(str2));
23         strcat( str1,str3);
24     }
25     puts(str1);
26     return 0;
27 }
在这个国度中,必须不停地奔跑,才能使你保持在原地。如果想要寻求突破,就要以两倍现在速度奔跑!
原文地址:https://www.cnblogs.com/yuxiaoba/p/8303286.html