标题:一个非常非常非常简单的代码,但不知道为什么达不到效果
取消只看楼主
iyybpatrick
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-10-15
结帖率:100%
已结贴  问题点数:20 回复次数:4 
一个非常非常非常简单的代码,但不知道为什么达不到效果
目标:想要从已获取的char*指针中获取空格前的部分,char *s="at station",获取char *t="at"  (这里后面不能有多余的空格)
问题:我提取好了保存在t里面了,但是和目标提取文件"at"不相同(strcmp显示为1),后来我用一个for循环发现at后面有很多空格,不过我new的空间不是只有2个么,会什么会出现多的空格呢?
代码如下:(请无视过多的头文件,我只是截取的部分代码出来)
#include<iostream>
#include<fstream>
#include<string>
#include <cstring>
#include<ctime>
#include<vector>
using namespace std;
int get_n(char*s)
{
    int i = 0;
    while (s[i] != ' ')
    {
        i++;
    }

    return i;
}
int main()
{
    char *s = "at train station";
    int k = get_n(s);
    char *t = new char[k];
    for (int i = 0; i < k; i++)
    {
        *(t + i) = *(s+i);
    }
    char *t1 = "at";
    cout << strcmp(t, t1);
    for (int m = 0; m < 4; m++){
        cout << *(t+m);
    }
    return 0;
}


求助啊,第一次发帖
搜索更多相关主题的帖子: include station 空间 
2015-10-15 21:49
iyybpatrick
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-10-15
得分:0 
回复 2楼 yangfrancis
最先我就想这样干的,他说“应输入常量表达式”
所以我迫不得已只有使用new char
2015-10-15 23:06
iyybpatrick
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-10-15
得分:0 
麻烦各位朋友帮帮忙呀,我卡这儿好久了,下周就要due了....还要赶着码代码~~
2015-10-15 23:12
iyybpatrick
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-10-15
得分:0 
回复 5楼 hjx1120
请问new新建了就要delete么,会不会把整个char都delete了?(我是新手,请勿喷~%>_<%)
同时请问,如果我要达到预期效果的话,应该怎么修改呢?
2015-10-16 00:08
iyybpatrick
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-10-15
得分:0 
问题解决了,加上t[k]='\0';
2015-10-16 00:31



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




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

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