31-语言入门-31-字符串替换

题目地址:?http://acm.nyist.net/JudgeOnline/problem.php?pid=113?

?

描述
编写一个程序实现将字符串中的所有"you"替换成"we"

输入
输入包含多行数据

每行数据是一个字符串,长度不超过1000
数据以EOF结束
输出
对于输入的每一行,输出替换后的字符串
样例输入
you are what you do
样例输出

we are what we do

?

?

代码:

#include <stdio.h>

//处理数据
static void handlerData(char *arr,int len);

int main()
{
???? while(1)
???? {
????????? char inputArr[1000] = {‘\0‘};
????????? if(gets(inputArr) == NULL)
?????????????? break;
????????? handlerData(inputArr,100);
????????? puts(inputArr);
???? }
????
???? return 0;
}

//处理数据
static void handlerData(char *arr,int len)
{
???? if(len < 3)
????????? return;
?????????
???? //you-we
???? int i = 2;
???? for(;i < len;++i)
???? {
????????? if(arr[i-2] == ‘\0‘ || arr[i-1] == ‘\0‘ || arr[i]==‘\0‘)
?????????????? break;
??????????????
????????? if(arr[i-2]==‘y‘ && arr[i-1] == ‘o‘ && arr[i] == ‘u‘)
????????? {
?????????????? arr[i-2] = ‘w‘;
?????????????? arr[i-1] = ‘e‘;
?????????????? int flag = i;
??????????????
?????????????? while(flag<len && arr[flag] != ‘\0‘ && flag+1<len)
?????????????? {
??????????????????? arr[flag] = arr[flag+1];
??????????????????? ++flag;
?????????????? }
????????? }
???? }
}

?

从之前的题目联系中得到的经验是对于边界的判断要考虑,该题目中对索引的代码写法就是考虑了边界的问题。

?

另外STL可以轻松解决:

#include<algorithm>
#include<iostream>
#include<string>

using namespace std;

int main()
{
??? string s, s1, s2;
??? while(getline(cin,s))
??? {
??????? int flag;
??????? s1 = "you";
??????? s2 = "we";
??????? flag = s.find(s1,0);
??????? while(flag != string::npos)
??????? {
??????????? s.replace(flag, 3, s2);
??????????? flag = s.find(s1, flag + 1);
??????? }
??????? cout << s << endl;
??? }
??? return 0;
}

时间: 2024-10-25 20:10:23

31-语言入门-31-字符串替换的相关文章

语言入门31

#include<stdio.h>int main() { int a[5],i,max,min; for(i=0;i<5;i++){ scanf("%d",&a[i]); } max=min=a[0]; for(i=0;i<5;i++){ if(max<a[i]) max=a[i]; if(min>a[i]) min=a[i]; } printf("%d %d\n",max,min); return 0;}

loadrunner获取毫秒及字符串替换实现

loadrunner获取毫秒及字符串替换实现 今天做一个性能测试,参数化要求创建用户名不可以重复,想来想不没有什么好的办法来避免用户名字的重复.所以就想用时间+随机数来实现,但是实现中遇到一个问题. 名字中不可以包含.这个特殊的字符的.所以要处理一下.字符串,于是就想一个C语言实现的字符串替换函数.loadrunner默认没有字符串替换函数,不知道为什么不做呢? (1)毫秒实现方法 通过创建date/time参数,设置格式为:%Y%m%d%H%M%S.000 (2)替换字符串函数 char *s

转:LoadRunner获取毫秒及字符串替换实现

今天做一个性能测试,参数化要求创建用户名不可以重复,想来想不没有什么好的办法来避免用户名字的重复.所以就想用时间+随机数来实现,但是实现中遇到一个问题. 名字中不可以包含.这个特殊的字符的.所以要处理一下.字符串,于是就想一个C语言实现的字符串替换函数.loadrunner默认没有字符串替换函数,不知道为什么不做呢? (1)毫秒实现方法 通过创建date/time参数,设置格式为:%Y%m%d%H%M%S.000 (2)替换字符串函数 char *strreplace(char *dest, c

【C语言】字符串替换空格:实现一个函数,把字符串里的空格替换成“%20”

//字符串替换空格:实现一个函数,把字符串里的空格替换成"%20" #include <stdio.h> #include <assert.h> void replace(char *src) { assert(src); int OldLen = 0; //原字符串长度 int NewLen = 0; //新字符串长度 int BlackNum = 0; //空格数量 int NewBack = 0; //新字符串尾部 int OldBack = 0; //原

【c语言】字符串替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”

// 字符串替换空格:请实现一个函数,把字符串中的每个空格替换成"%20". // 例如输入"we are happy.",则输出"we%20are%20happy." #include <stdio.h> #include <assert.h> char* replace(char* p) { char* ret = p; int num = 0; int oldlen = 0; int newlen = 0; char

【南阳OJ分类之语言入门】80题题目+AC代码汇总

声明: 题目部分皆为南阳OJ题目. 代码部分包含AC代码(可能不止一个)和最优代码,大部分都是本人写的,并且大部分为c代码和少部分c++代码and极少java代码,但基本都是c语言知识点,没有太多差别,可能代码有的写的比较丑,毕竟知识有限. 语言入门部分题基本都较为简单,是学习编程入门的很好练习,也是ACM的第一步,入门的最佳方法,望认真对待. 本文由csdn-jtahstu原创,转载请注明出处,欢迎志同道合的朋友一起交流学习.本人QQ:1373758426和csdn博客地址. now begi

str_replace字符串替换

字符串替换, src 源字符串, buf_size 缓冲大小, search搜索的字符串大小, repstr 需要替换成的字符串 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64

c语言入门经典(第5版)

文章转载:http://mrcaoyc.blog.163.com/blog/static/23939201520159135915734 文件大小:126MB 文件格式:PDF    [点击下载] C语言入门经典(第5版)  内容简介: C语言是每一位程序员都应该掌握的基础语言.C语言是微软.NET编程中使用的C#语言的基础:C语言是iPhone.iPad和其他苹果设备编程中使用的Objective-C语言的基础:C语言是在很多环境中(包括GNU项目)被广泛使用的C++语言的基础.C语言也是Li

C#中正则表达式进行忽略大小写的字符串替换

在C#里要进行忽略大小写的字符串替换,用string的Replace是很难做到的,即使花了天大的力气做到了,效率仍然是很低的,正确的方法应该是使用正则表达式. 要使用正则表达式,首先需要引用命名空间: 以下是引用片段: usingSystem.Text.RegularExpressions; 然后,非常简单,使用: 以下是引用片段: Regex.Replace(字符串,要替换的子串,替换子串的字符,RegexOptions.IgnoreCase) 就可以达到目的了,其中最后的参数RegexOpt

php字符串替换的几个函数

strtr() str_replace() substr_replace() preg_replace() strtr()的用法: 1 <?php 2 3 $str = "test"; 4 5 $str1 = strtr($str, 't', 'z'); // zesz 6 $str2 = strtr($str, 'tt', 'z1');// 1es1 7 $str3 = strtr($str, 't', '');// test 8 $str4 = strtr($str, 'ts