标题:求解,我错在哪里--指针
只看楼主
水浙江雪
Rank: 1
等 级:新手上路
帖 子:104
专家分:3
注 册:2014-5-17
结帖率:95.83%
 问题点数:0 回复次数:5 
求解,我错在哪里--指针
编写函数newcopy(char *new,char *old),它的功能是删除old所指向的字符串中的小写字母,并将所得到的新串存入new中。
  要求:
  (1)在主函数中以初始化方式输入一个字符串;
  (2)调用newcopy()函数;
  (3)在主函数中输出处理后的结果。

#include <iostream>
using namespace std;

void newcopy(char *new,char *old);
int main()
{
    char *old,*new,a[10];
    old=a;
    new=a;
    cout<<"Please input a character:"<<endl;
    gets(a);
    newcopy(char *new,char *old);
    cout<<new<<endl;
}

void newcopy(char *new,char *old)
{
    int j;
    for(old=a;*old!='\0';old++)
    {
        if((*old)>'z'||(*old)<'a')
        {
            *(new+j)=*old;
            j++;
        }
        *(new+j)='\0';
    }
}
求大神指点,我哪儿错了。谢谢。
搜索更多相关主题的帖子: character include 字符串 字母 
2014-05-19 15:13
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
错误之处甚多

1、new是关键字 不可以做变量名称使用
2、函数调用 形参 实参 还是区别不开

DO IT YOURSELF !
2014-05-19 15:29
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
得分:0 
从hello,world稳步前进

总有那身价贱的人给作业贴回复完整的代码
2014-05-19 15:30
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
得分:0 
new和old都是指针,在赋值的时候应该考虑在值的前面加个&吧?
还有,怎么没有看到接受用户输入字符串的语句?如果要在代码中直接赋给old所指内存一个字符值的话就要使用*old='a'这种形式了。
2014-05-22 11:16
ClarenceC
Rank: 2
等 级:论坛游民
帖 子:54
专家分:18
注 册:2014-1-10
得分:0 
  您好,还有一个问题您可能没注意到。在函数体内部定义的变量是没有默认初始化的,所以您在第一次调用 j 的时候就不能达到您本来要的效果。(至少在vs2012上是这样的。仅供您参考!)
2014-05-23 11:22
Erlosshex
Rank: 2
等 级:论坛游民
威 望:1
帖 子:17
专家分:10
注 册:2014-5-24
得分:0 
建议好好学习基础知识
2014-05-24 09:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-431771-1-1.html




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

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