C语言问题 字符(串)替换
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言问题 字符(串)替换相关的知识,希望对你有一定的参考价值。
背景:
字符串的替换功能是目前各种编辑软件中必备的功能之一。下面我们也来实现一下这个替换功能。
输入:
输入3行:第1行为源串 s(长度<=100);第2行位被替换串 t(长度<=10);第3行为替换串 str(长度<=10)
输出:
替换后的字符串(长度<=100)。
我的程序:
#include<stdio.h>
#include<string.h>
int main()
char src[250], pattern[250], replace[250], dst[250];
int i, j, k, l;
int pattern_len, match_len;
gets( src );
gets( pattern );
gets( replace );
pattern_len = strlen( pattern );
strcpy( dst, src );
for ( i = 0; src[i]; i++ )
for ( j = 0, k = i, match_len = 0; pattern[j]; j++, k++ )
if ( pattern[j] == src[k] ) match_len++;
if ( match_len == pattern_len )
for ( k = 0; k < i; k++ )
dst[k] = src[k];
for ( l = 0; replace[l]; k++, l++ )
dst[k] = replace[l];
for ( l = i + match_len; src[l]; k++, l++ )
dst[k] = src[l];
dst[k] = '\0';
break;
puts( dst );
return 0;
有四个保密测试不通过,求大神改错
#include <stdio.h>
#include <string.h>
int main()
char src[250], pattern[250], replace[250], dst[250];
int i, j, k, l, m=0;
int pattern_len, match_len;
gets( src );
gets( pattern );
gets( replace );
pattern_len = strlen( pattern );
// strcpy( dst, src );
for ( i = 0; src[i]; i++ )
for ( j = 0, k = i, match_len = 0; pattern[j]; j++, k++ )
if ( pattern[j] == src[k] )
match_len++;
else
match_len=0;
break;
if ( match_len == pattern_len )
// for ( k = 0; k < i; k++ )
// dst[k] = src[k];
for ( l = 0; replace[l]; m++, l++ )
dst[m] = replace[l];
// for ( l = i + match_len; src[l]; k++, l++ )
// dst[k] = src[l];
// dst[k] = '\0';
// break;
i+=match_len-1;
else
dst[m] = src[i];
m++;
dst[m]='\0';
puts( dst );
return 0;
参考技术A 提问的艺术
在网络世界里,当提出一个技术问题时,你能得到怎样的回答?这取决于挖出答案的难度, 同样取决于你提问的方法。本指南旨在帮助你提高发问技巧,以获取你最想要的答案……
不想掩饰对这样一些人的蔑视--他们不愿思考,或者在发问前不去完成他们应该做的事。这种人只会谋杀时间--他们只愿索取,从不付出,无端消耗我们的时间,而我们本可以把时间用在更有趣的问题或者更值得回答的人身上。我们称这样的人为“失败者”(由于历史原因,我们有时把它拼作“lusers”)。
提问之前(Before You Ask)
在通过电邮、新闻组或者聊天室提出技术问题前,检查你有没有做到: 1. 通读手册,试着自己找答案。
2. 在FAQ里找答案(一份维护得好的FAQ可以包罗万象:)。 3. 在网上搜索(个人推荐google~~~)。 4. 向你身边精于此道的朋友打听。
当你提出问题的时候,首先要说明在此之前你干了些什么;这将有助于树立你的形象:你不是一个妄图不劳而获的乞讨者,不愿浪费别人的时间。如果提问者能从答案中学到东西,我们更乐于回答他的问题。
周全的思考,准备好你的问题,草率的发问只能得到草率的回答,或者根本得不到任何答案。越表现出在寻求帮助前为解决问题付出的努力,你越能得到实质性的帮助。
小心别问错了问题。
另一方面,表明你愿意在找答案的过程中做点什么,是一个非常好的开端。“谁能给点提示?”、“我这个例子里缺了什么?”以及“我应该检查什么地方?”比“请把确切的过程贴出来”更容易得到答复。因为你显得只要有人指点正确的方向,你就有完成它的能力和决心。
怎样提问 (When You Ask)
谨慎选择论坛
小心选择提问的场合。如果象下面描述的那样,你很可能被忽略掉或者被看作失败者: 1. 在风马牛不相及的论坛贴出你的问题
2. 在探讨高级技巧的论坛张贴非常初级的问题;反之亦然 3. 在太多的不同新闻组交叉张贴 参考技术B 您会写程序,那最好自己写喔:)
给个提示您输入文件为:
aba
ba
aaba
替换后会变成什么?追问
aaaba啊
追答那:
aaba
aba
ba
呢?
C的string.h里有没有字符串替换函数
参考技术A 1.函数名: stpcpy功 能: 拷贝一个字符串到另一个
2.函数名: strcat
功 能: 字符串拼接函数
3.函数名: strchr
功 能: 在一个串中查找给定字符的第一个匹配之处\
4.函数名: strcmp
功 能: 串比较
5.函数名: strncmpi
功 能: 将一个串中的一部分与另一个串比较, 不管大小写
6.函数名: strcpy
功 能: 串拷贝
7.函数名: strcspn
功 能: 在串中查找第一个给定字符集内容的段
8.函数名: strdup
功 能: 将串拷贝到新建的位置处
9.函数名: stricmp
功 能: 以大小写不敏感方式比较两个串
10.函数名: strerror
功 能: 返回指向错误信息字符串的指针
11函数名: strcmpi
功 能: 将一个串与另一个比较, 不管大小写
12函数名: strncmp
功 能: 串比较
13函数名: strncmpi
功 能: 把串中的一部分与另一串中的一部分比较, 不管大小写
14函数名: strncpy
功 能: 串拷贝
15函数名: strnicmp
功 能: 不注重大小写地比较两个串
16函数名: strnset
功 能: 将一个串中的所有字符都设为指定字符
17函数名: strpbrk
功 能: 在串中查找给定字符集中的字符
18函数名: strrchr
功 能: 在串中查找指定字符的最后一个出现
19函数名: strrev
功 能: 串倒转
20函数名: strset
功 能: 将一个串中的所有字符都设为指定字符
21函数名: strspn
功 能: 在串中查找指定字符集的子集的第一次出现
22函数名: strstr
功 能: 在串中查找指定字符串的第一次出现
23函数名: strtod
功 能: 将字符串转换为double型值
24函数名: strtok
功 能: 查找由在第二个串中指定的分界符分隔开的单词
25函数名: strtol
功 能: 将串转换为长整数
26函数名: strupr
功 能: 将串中的小写字母转换为大写字母
27函数名: swab
功 能: 交换字节
以上是关于C语言问题 字符(串)替换的主要内容,如果未能解决你的问题,请参考以下文章