当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 诸位高手帮我我看看这个c小程序问题出在哪 源代码如下 运行时没有结果 程序功能是 从字符串string1中提取字符串st
帖子发表于 : 2009-03-18 21:13 

注册: 2008-10-23 19:56
帖子: 1
送出感谢: 0 次
接收感谢: 0 次
诸位高手帮我我看看这个c小程序问题出在哪 源代码如下 运行时没有结果 程序功能是 从字符串string1中提取字符串string2
诸位大侠 帮我我看看这个c小程序问题出在哪 源代码如下 能编译过去 运行时没有结果 程序功能是 从字符串string1中提取字符串string2
#include<stdio.h>
int main()
{
int i=0,j=0,k=0;
char string1[]="adsownifowwe";
char string2[]="ow";
char *p,*a;
p=string1;
a=string2;
for(;*p!='\0';p++,i++)
{
if(*a=*p)
{
a++;
j++;
if(*a='\0')
{ printf("string1 has string2 at %d \n",i);
a=a-j;
j=0;
k++;
}
}else
{
a=a-j;
p=p-j;
i=i-j;
j=0;
}
}
if(k=0)printf("string1 doesn't have string2"};
}


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 诸位高手帮我我看看这个c小程序问题出在哪 源代码如下 运行时没有结果 程序功能是 从字符串string1中提取字符串st
帖子发表于 : 2009-03-18 22:54 
头像

注册: 2008-02-23 17:31
帖子: 401
送出感谢: 0 次
接收感谢: 1
代码:
//从string1里面查找string2第一次出现的位置,
//位置从0开始

#include <stdio.h>
#include <stdlib.h>

int main(){
    int i=0,j=0,k;
    char string1[80];
    char string2[80];
    printf("Please input string1:\n");
    scanf("%s",string1);
    printf("Please input string2:\n");
    scanf("%s",string2);
   
    while(string1[i] != '\0')
    {
        if(string1[i]!=string2[j])
        {
            i++;
        }else{
            while(string2[j] != '\0')
            {
                if(string2[j]==string1[i])
                {
                    i++;j++;k=i;
                }else{
                    k=0;break;
                }
            }
            break;
        }
    }
   
    if(k!=0)
    {
        printf("The sring2 is at the %d postion(start from 0) of string1.\n", k-j);
    }else{
        printf("String2 is not in string1.\n");
    }
   
    system("PAUSE");
    return 0;
}


_________________
My Blog: matlab, ubuntu, python
http://goo.gl/GDIO


最后由 libralibra 编辑于 2009-03-29 19:38,总共编辑了 1 次

页首
 用户资料  
 
3 楼 
 文章标题 : Re: 诸位高手帮我我看看这个c小程序问题出在哪 源代码如下 运行时没有结果 程序功能是 从字符串string1中提取字符串st
帖子发表于 : 2009-03-29 19:33 
头像

注册: 2008-02-23 17:31
帖子: 401
送出感谢: 0 次
接收感谢: 1
上面的代码有点bug,输入的字符串有空格就会有问题,下面的代码可以接受空格:

代码:
/*
  Description:  从string1里面查找string2第一次出现
*/

#include <stdio.h>
#include <stdlib.h>

int main(){
    int i=0,j=0,k=0,b=0;
    char string1[80];
    char string2[80];
    char ch;
    printf("Please input string1:\n");
    //can recieve strings with space
    while((ch = getchar())!='\n' && i<80)
    {
        string1[i++] = ch;
    }
    string1[i] = '\0';
    //scanf("%s",string1);
    printf("Please input string2:\n");
    while((ch = getchar())!='\n' && j<80)
    {
        string2[j++] = ch;
    }
    string2[j] = '\0';
    //scanf("%s",string2);
   
    i=0;j=0;
    while(string1[i] != '\0')
    {
        if(string1[i]!=string2[j])
        {
            i++; //don't match, test next position of string1
        }else{ //match, test next position of string2
            while(string2[j] != '\0')
            {
                if(string2[j]==string1[i]) //match, next position of string1
                {
                    i++;j++;k=i;
                }else{ //don't match, jump out of inner loop
                    k=0;break;
                }
            }
            break;
        }
    }
   
    if(k!=0)
    {
        printf("The sring2 is in the %d postion(start from 0) of string1.\n", k-j);
    }else{
        printf("String2 is not in string1.\n");
    }
   
    system("PAUSE");
    return 0;
}


_________________
My Blog: matlab, ubuntu, python
http://goo.gl/GDIO


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 诸位高手帮我我看看这个c小程序问题出在哪 源代码如下 运行时没有结果 程序功能是 从字符串string1中提取字符串st
帖子发表于 : 2009-04-02 0:36 

注册: 2007-04-21 11:57
帖子: 105
送出感谢: 0 次
接收感谢: 0 次
代码:
#include <stdlib.h>
#include <stdio.h>

int main()
{
   char str1[]="adsownifowwe";
   char str2[]="ow";

   char *p, *q;
   p = str1;
   q = str2;
   int k = 0;

   while (*p)
   {
      if (*p != *q)
         q = str2;
      
      if (*p == *q)
      {
         q++;
         if (*q == '\0')
         {
            printf("string1 has string2 at %d \n", p-&str1[0]-strlen(str2)+1);
            k++;
            q = str2;
         }
      }
      p++;
   }

   if (k == 0)
      if(k=0)printf("string1 doesn't have string2"};
   else
      printf("string1 have string2  %d\n", k);
   return 0;
}


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 4 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译