| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 24292 人关注过本帖
标题:一个字符串中的某个字符,替换为另一个字符
只看楼主 加入收藏
MuMuLee
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2016-1-16
结帖率:84.21%
收藏
已结贴  问题点数:2 回复次数:4 
一个字符串中的某个字符,替换为另一个字符
简单信息加密,编写一个函数实现加密功能,完成对一个字符串中的某个字符,替换为另一个字符。字符串、要替换的字符及替换后字符,由数据输入给出。主函数中完成替换后字符串的输出。
Input
输入数据只有多组,每组为二行,第一行数值n(1=<n<=5),然后是另起一行,分别为n行字符串(每行不超过100个字符)。每个字符串单独一行,第一个字符为查找字符,第二个字符为替换字符,两个字符之间用一个空格分隔,然后为一个空格分开的字符串。格式见输入示例。
Output
输出替换后的字符串,每组数据单独一行输出。见输出示例。
Sample Input
 2
 I i ThIs Is a C Program
 T t Now,I am Testing!
Sample Output
This is a C program
Now,I am testing!

程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int fun(char a[101],char xx,char yy)
{
    int j;
    for(j=0;j<strlen(a);j++)
    {
        if(a[j]=='xx')
        a[j]='yy';
    }
return a;
}
void fun2(char a[101],char xx,char yy)
{
    int j;
    char b[101];
    for(j=0;j<strlen(a);j++)
    {
        if(a[j]=='xx')
        b[j]='yy';
        else
        b[j]=a[j];

    }
   // return b;
}

int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        int i=0;
        for(;i<n;i++)
        {
            char c[101],x,y;
            scanf("%c",&x);
            scanf(" %c",&y);
            gets(c);
            fun2(c,x,y);
          puts(c);
        }
    }
    return 0;
}



哪里写的不对 fun 和fun2 哪个对?
搜索更多相关主题的帖子: 加密 字符串 信息 
2016-04-21 18:17
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
都不对,诸如a[j]=='xx'是错的,应该是a[j]==xx,xx本来就是字符。

   唯实惟新 至诚致志
2016-04-21 19:18
MuMuLee
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2016-1-16
收藏
得分:0 
回复 2楼 qq1023569223
2
 I i ThIs Is a C Program
   i ThIs Is a C Program


把‘’处改完之后是这样的亲帮忙看一下fun2函数哪里不对
 
2016-04-21 20:45
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:2 
以下是引用MuMuLee在2016-4-21 20:45:27的发言:

2
 I i ThIs Is a C Program
   i ThIs Is a C Program
 
 
把‘’处改完之后是这样的亲帮忙看一下fun2函数哪里不对
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void fun2(char a[101],char xx,char yy)
{
    int j;
    for(j=0;j<strlen(a);j++)
    {
        if(a[j]==xx)
        a[j]=yy;


    }
}

int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        getchar();       //取回车键。
        int i=0;
        for(;i<n;i++)
        {
            char c[101],x,y;
            scanf("%c",&x);
            getchar();   //这里不加这句代码,你就要连续输入x和y,不要加空格,回车之类的
            scanf(" %c",&y);
            getchar();  //这里不加,直接输入c
            gets(c);
            fun2(c,x,y);
          puts(c);
        }
    }
    return 0;
}
红色的自己仔细看下。
还有,你这个是死循环。
2016-04-22 00:13
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10566
专家分:43004
注 册:2014-5-20
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <string.h>

int fun(char* a, char xx, char yy)
{
    for(int i=0; i<strlen(a); i++)
    {
        //if(*(a+i)==xx) *(a+i)=yy;
        if(a[i]==xx) a[i]=yy;
    }
}

int main()
{
    int n;
    char* c;
    char x,y;
    while(1)
    {
        printf("n=");
        setbuf(stdin, NULL);
        scanf("%d",&n);
        if(n==0) break;
        setbuf(stdin, NULL);
        for(int i=0; i<n; i++)
        {
            printf("x=");
            setbuf(stdin, NULL);
            scanf("%c",&x);
            printf("y=");
            setbuf(stdin, NULL);
            scanf("%c",&y);
            printf("c=");
            setbuf(stdin, NULL);            
            gets(c);
            fun(c,x,y);
            puts(c);
        }
    }
    return 0;
}
2016-04-22 09:21
快速回复:一个字符串中的某个字符,替换为另一个字符
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015109 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved