| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1447 人关注过本帖
标题:字符串替换--帮忙修改一下
只看楼主 加入收藏
lzxm160
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2006-12-26
收藏
 问题点数:0 回复次数:6 
字符串替换--帮忙修改一下
#include<stdio.h>
#include<string.h>
void main()
{
    char s[30];
    char str[] = "input";
    void replace(char *s, char str[]);
    clrscr();
    printf("input a string:\n");
    scanf("%s", s);
    replace(s, str);
}
void replace(char *s, char *str)
{
    int i, j;
    if (strstr(s, str)!=NULL)
    {
        i = strstr(s, str);
        s[i]= 's';s[++i] = 'h';
        s[++i]   = 'u';s[++i]   = 'r';
        s[++i]   = 'u';
        printf("%s", s);
    }
    else printf("no found");
}
搜索更多相关主题的帖子: 串替 字符 
2008-01-13 18:13
nobush
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2008-1-10
收藏
得分:0 
1. 把replace()函數寫在前面或者在main()前聲明

2. strstr()函數返回値是一個指針不是整型
2008-01-13 18:39
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
/*找到并交换字符串*/
/*这个可以*/
#include<stdio.h>
#include<string.h>
void main()
{
    void replace(char *s1, char *s2);
    char s[50];
    char str[50] = "input";/*数组下标定大点防止越界*/
    char *s1,*s2;          /*定义指针指向两个字符串*/
    s1=s;
    s2=str;
   
    clrscr();
    printf("input a string:\n");
    printf("s= ");
    gets(s1);
    replace(s1,s2);
}
void replace(char *s, char *str)
{
    int i, j,sl1,sl2,sl3;
    char ss[50],*p,*q;
    p=s;
    q=str;
    sl1=strlen(s);
   
   
    if (strstr(s, str)!=NULL)
    {
        for(i=0;i<sl1;i++)/*以下用指针互相传递*/
          ss[i]=*p++;
        ss[i]='\0';
        p=s;
        
        for(;*q!='\0';)
             *p++=*q++;
        *p='\0';
        q=str;
        sl2=strlen(ss);
            
        for(i=0;i<sl2;i++)
           *q++=ss[i];
        *q='\0';
               
        printf("s=%s str=%s",s,str);
    }
    else printf("no found");
}
2008-01-13 20:07
lonmaor
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:郑州
等 级:版主
威 望:75
帖 子:2637
专家分:6423
注 册:2007-11-27
收藏
得分:0 
大概照楼主的意思改了一下。不知道有什么用。
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    char s[30];
    char str[] = "input";
    void replace(char *str, char *s);
    printf("input a string:\n");
    scanf("%s", s);
    replace(s, str);
    system("pause");
    return 0;
}
void replace(char *s, char *str)
{
    char *p = strstr(str, s);  
    if (p)
    {
        *(p+0) = 's';
        *(p+1) = 'h';
        *(p+2) = 'u';
        *(p+3) = 'r';
        *(p+4) = 'u';
        *(p+5) = '\0';
        printf("%s", str);
    }
    else printf("no found");
}
strstr
  
 

  原型:extern char *strstr(char *haystack, char *needle);
        
  用法:#include <string.h>
  
  功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。
  
  说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。
  
  举例:
程序代码:
      // strstr.c
      
      #include <syslib.h>
      #include <string.h>

      main()
      {
        char *s="Golden Global View";
        char *l="lob";
        char *p;
        
        clrscr();
        
        p=strstr(s,l);
        if(p)
          printf("%s",p);
        else
          printf("Not Found!");

        getchar();
        return 0;
      }

 
相关函数:strchr,strpbrk,strtok
 
2008-01-13 21:50
spring4676
Rank: 1
来 自:内蒙古大草原
等 级:新手上路
帖 子:103
专家分:0
注 册:2007-12-10
收藏
得分:0 
都是牛人
2008-01-13 22:51
81018618
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-1-14
收藏
得分:0 
niu
2008-01-14 01:14
ggggiaqgyd
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2007-10-13
收藏
得分:0 
不明白什么意思呀
不能用strcpy()?
2008-01-14 13:50
快速回复:字符串替换--帮忙修改一下
数据加载中...
 
   



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

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