C 删除字符串1字符串2

#include<stdio.h>

#include<string.h>

void main()

{

char s1[1000],s2[100],b[100];

int i,j,k,len1,len2;

gets(s1);

gets(s2);

len1=strlen(s1);

len2=strlen(s2);

for(i=0,k=0;i<len1;i++)

{

for(j=0;j<len2;j++)

if(s1[i+j]!=s2[j])break;

if(j>=len2)

{

b[k]=i+1;  //b[k]为s1中s2出现的位置

k++;         //k 为s2在s1中出现的次数

}

}

printf("%d\n",k);

for(i=0;i<k;i++)

printf("%d ",b[i]);

printf("\n");

for(j=0;j<k;j++)        //去掉s1中的s2

for(i=0;i<len2;i++)

s1[b[j]-1+i]=‘*‘;

for(i=0;i<len1;i++)

if(s1[i]!=‘*‘)

printf("%c",s1[i]);

printf("\n");

}

版权声明:本文博主原创文章,博客,未经同意不得转载。

时间: 2024-10-27 05:00:22

C 删除字符串1字符串2的相关文章

从第一个字符串中删除第二个字符串中出现过的所有字符

// 从第一个字符串中删除第二个字符串中出现过的所有字符 #include <stdio.h> char* remove_second_from_first( char *first, char *second ) { if( first == NULL || second == NULL ) { printf("first or/and second should not be NULL\n"); return NULL; } char flag[256]={0}; ch

删除 C 风格字符串中间的 &#39;*&#39;(不用库函数)

char* removeMiddleStar(char *str) { if (!str) return str; char *p = str; for(; *p == '*'; ++p); char *q = p; while(*++q != '\0'); while(*--q == '*'); for (char *k = p; *k != '\0'; ++k) if ((k < q && *k != '*') || k >= q) *p++ = *k; *p = '\0'

按指定格式的子字符串,删除和分割字符串

删除就用- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement;将@“[:1:]"”,替换成@“” 分割就用- (NSArray *)componentsSeparatedByString:(NSString *)separator;根据你选定分割符拆分字符串 IOS字符串按特定字符拆分成数组 NSString * fruits = @&quo

删除string类型字符串中指定字符串段

1.实现背景 在插入list行时用邮件的MessageID给对应行命名. 在回复全部邮件时,收件人变为之前收件人中出去“自己”同时加入之前发件人,抄送人还是之前的抄送人,密送人不用管,直接不用带. 在“回复全部”按钮响应函数里面 CListUI* pList = static_cast<CListUI*>(m_PaintManager.FindControl(_T("middle_comlumn_header1")));//拿到list控件指针            int

Editplus 正则表达式 删除含有指定字符串的行 删除注释

1.删除含有指定字符串的行 替换:  ^.*(指定字符串).*$  为空 例如,删除含有"JOIN"的行, 替换:  ^.*JOIN.*$   为空 2.删除//行注释 替换: //.*$  为空 (需注意,此正则会误删在引号中的'//',  如 'http://www'  ) 3.删除/*...*/段注释 替换: //*.*/n*.*/*/  为空 (需要注意,此正则在Editplus中会有一定的误判,应该是bug,请在替换时单步观察)

删除第一个字符串出现的第二个字符串

题目描述: 删除第一个字符串中出现的第二个字符串,比如s1:ababaabb, s2:aba,输出应为:baabb #include <iostream> #include <string> using namespace std; int main(){ string s1, s2; while(cin >> s1){ char c = getchar(); cin >> s2; int pos = -1; while((pos = s1.find(s2)

C Primer Plus (第五版) 第十一章 字符串和字符串函数 编程练习

第十一章 字符串和字符串函数 编程练习 设计并测试一个函数,可以输入读取n个字符(包括空格.制表符.换行符),把结果存储在一个数组中,这个数组的地址通过参数来传递. #include <stdio.h> #define LEN 80 char * getch(char a[], int n); int main(void) { char a[LEN]; if (getch(a, 4)) puts(a); else printf("没有读取\n"); return 0; }

*字符串-05. 字符串循环左移

1 /* 2 * Main.c 3 * D5-字符串-05. 字符串循环左移 4 * Created on: 2014年8月19日 5 * Author: Boomkeeper 6 ********部分通过******* 7 */ 8 9 #include <stdio.h> 10 11 int main(void){ 12 13 char str[100]={0}; 14 int N=0; 15 int endIndex=99;//字符串的结尾标识符 16 17 gets(str); 18

字符串-04. 字符串逆序

1 /* 2 * Main.c 3 * D4-字符串-04. 字符串逆序 4 * Created on: 2014年8月19日 5 * Author: Boomkeeper 6 *******测试通过****** 7 */ 8 9 #include <stdio.h> 10 11 int main(void){ 12 13 char str[80]; 14 15 gets(str); 16 17 int i; 18 for(i=0;i<80;i++){ 19 if(str[i]=='\0

字符串-05. 字符串循环左移(20)

输入一个字符串和一个非负整数N,要求将字符串循环左移N次. 输入格式: 输入在第1行中给出一个不超过100个字符长度的.以回车结束的非空字符串:第2行给出非负整数N. 输出格式: 在一行中输出循环左移N次后的字符串. 输入样例: Hello World! 2 输出样例: llo World!He import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(St