| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4275 人关注过本帖
标题:包括n个字符的字符串。从第m个字符开始全部的的字符复制为另一个字符串。用 ...
只看楼主 加入收藏
流星123
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-12-6
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:6 
包括n个字符的字符串。从第m个字符开始全部的的字符复制为另一个字符串。用C编。
#include "stdio.h"
#define n 10
#define m 2
char jie(char b[])
{
    int i,j=0;
    char a[n];
    for(i=m-1;*(a+i)!='\0';i++)
    *(b+j)=*(a+i);
    j++;
    *(b+(strlen(a)-m+1))='\0';
    for(i=0;b[i]!='\0';i++)
    printf("%c",b[i]);   
    }
main()
{char a[n]="I am a boy";
    printf("string:\nfrom m to n:\n");
    jie(a);
}
就是不对劲。。没法按要求来。

[ 本帖最后由 流星123 于 2011-1-7 10:59 编辑 ]
搜索更多相关主题的帖子: 字符串 
2011-01-07 10:48
点线面
Rank: 8Rank: 8
来 自:NO.-1
等 级:蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
收藏
得分:7 
char a[n]; 都没有赋字符串,会产生不可预测的结果

小代码,大智慧
2011-01-07 10:52
流星123
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-12-6
收藏
得分:0 
#include "stdio.h"
#define n 10
#define m 2
char jie(char b[])
{
    int i,j=0;
    char a[n];
    for(i=m-1;*(a+i)!='\0';i++)
    *(b+j)=*(a+i);
    j++;
    *(b+(strlen(a)-m+1))='\0';
    for(i=0;b[i]!='\0';i++)
    printf("%c",b[i]);   
    }
main()
{char a[n]="I am a boy";
    printf("string:\nfrom m to n:\n");
    jie(a);
}



a[n]在main中赋值不就行了嘛,没有必要再自定义中赋值啊。
2011-01-07 10:58
点线面
Rank: 8Rank: 8
来 自:NO.-1
等 级:蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
收藏
得分:0 
以下是引用流星123在2011-1-7 10:58:51的发言:

#include "stdio.h"
#define n 10
#define m 2
char jie(char b[])
{
    int i,j=0;
    char a[n];
    for(i=m-1;*(a+i)!='\0';i++)
    *(b+j)=*(a+i);
    j++;
    *(b+(strlen(a)-m+1))='\0';
    for(i=0;b!='\0';i++)
    printf("%c",b);   
    }
main()
{char a[n]="I am a boy";
    printf("string:\nfrom m to n:\n");
    jie(a);
}



a[n]在main中赋值不就行了嘛,没有必要再自定义中赋值啊。
凡是在子函数申请的类型,如果没有指针传递,且没有改变指向的值,当然可以通过函数返回(return),子函数是不会影响父函数,就算名字相同也是一样的

[ 本帖最后由 点线面 于 2011-1-7 11:13 编辑 ]

小代码,大智慧
2011-01-07 11:04
xufan123
Rank: 5Rank: 5
等 级:职业侠客
帖 子:226
专家分:318
注 册:2010-11-15
收藏
得分:7 
#include<stdio.h>
#define M 2
#define N 10
void  jie(char a[],char b[])
{
    int i,j=0;
    for(i=M-1;*(a+i)!='\0';i++)
    {
        *(b+j)=*(a+i);
        j++;
    }
    *(b+j)='\0';
    puts(b);
}
main()
{
    char a[]="i am a boy";
    char b[N];
    jie(a,b);
}  这样就好了呗
图片附件: 游客没有浏览图片的权限,请 登录注册
2011-01-07 12:49
xufan123
Rank: 5Rank: 5
等 级:职业侠客
帖 子:226
专家分:318
注 册:2010-11-15
收藏
得分:0 
楼主的问题是 函数中没有给a[]的值
2011-01-07 12:51
zghnxzdcx
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:550
专家分:1176
注 册:2010-4-6
收藏
得分:7 
我记得C语言有个求子串的函数……

你永远不可能战胜一个纯傻子,因为他会把你的智商拉到和他同一个水平,然后用他的丰富经验打败你。
2011-01-07 14:15
快速回复:包括n个字符的字符串。从第m个字符开始全部的的字符复制为另一个字符串 ...
数据加载中...
 
   



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

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