知道会不会有第二篇,暂且先写个一吧!
字符串操作首先,不要忘记 #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 = '