| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1877 人关注过本帖
标题:关于求子字符问题
只看楼主 加入收藏
hllSaturn
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2015-12-20
结帖率:62.5%
收藏
已结贴  问题点数:20 回复次数:5 
关于求子字符问题
程序代码:
#include<stdio.h>
#include <string.h>
void main()
{
  char ch[70];
  int N,i,x,y,j;
  gets(ch);
  scanf("%d\n%d",&x,&y);
  N=strlen(ch);
  for(i=0;i<N;i++)
  {
      if(i==(x-1))
          break;
  }
  for(j=0;j<y;j++)
  {
      a[j]=a[i];
      printf("%c",a[j]);
  }
}
Description

求字符串中指定开始结束位置的子字符串,若输入的开始位置小于1,则开始位置为1,若输入的结束位置大于字符串长度,则结束位置为字符串长度。

Input

一个字符串,字符串长度为N ( 1 <= N <= 70 )
以空格间隔的开始位置和结束位置

Output

子字符串

Sample Input


12345678
2 8

Sample Output


2345678
2016-01-10 15:02
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:5 
直接用求子串的函数貌似是strstr()你写的太麻烦用不了两重for

一片落叶掉进了回忆的流年。
2016-01-10 18:12
eFun
Rank: 6Rank: 6
等 级:禁止访问
威 望:1
帖 子:58
专家分:400
注 册:2015-12-27
收藏
得分:5 
他没用两重,是两个for。
他根本就是乱写:无缘无故蹦出个数组a,第二个for从0到8,要输出9个字符,实际只需输出8-2+1=7个字符,逻辑完全错误。
2016-01-10 18:44
eFun
Rank: 6Rank: 6
等 级:禁止访问
威 望:1
帖 子:58
专家分:400
注 册:2015-12-27
收藏
得分:0 
回复 4楼 zlz66668888
很显然,你的代码也是错误的,根据题意,假如输入如下:
123456789abcdefg
5 8
输出应该是:5678
你的输出是:6789abcd
错远了!正确的第二个for应该是
for(j=0;j+x<=y;j++)a[j]=ch[j+x-1];
第一个for是画蛇添足。
2016-01-11 22:12
eFun
Rank: 6Rank: 6
等 级:禁止访问
威 望:1
帖 子:58
专家分:400
注 册:2015-12-27
收藏
得分:0 
还是仔细看题意吧:求字符串中指定开始结束位置的子字符串。再仔细看题目给出的输入输出例子。
2016-01-11 22:50
demon90s
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:44
专家分:121
注 册:2016-1-3
收藏
得分:5 
程序代码:
#include <stdio.h>
#include <string.h>
char substr[70];
int main(void)
{
    char str[70];
    int begin, end, i, j;
    printf("enter a string: ");
    scanf("%s", str);
    printf("enter begin and end: ");
    scanf("%d %d", &begin, &end);
    begin = begin < 1 ? 1 : begin;
    end = end > strlen(str) ? strlen(str) : end;
    for (i = begin-1, j = 0; i < end; i++, j++)
        substr[j] = str[i];
    printf("sub string is: %s\n", substr);
  
    return 0;
}
2016-01-12 00:02
快速回复:关于求子字符问题
数据加载中...
 
   



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

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