c++ - 抓取字符串的一部分,如 substr

标签 c++

所以我正在制作一个类似于 SubStr 的函数。这是一项任务,所以我不能使用实际功能来执行此操作。到目前为止,我已经创建了一个函数来获取一个字符串,然后获取所需的子字符串。我的问题是返回子字符串。在函数中,当我执行 Substring[b] = AString[b]; 时,子字符串为空,但如果我从函数内部 cout ,我会得到所需的子字符串。那么我的代码有什么问题呢?

这是一个工作演示:http://ideone.com/4f5IpA

#include <iostream>
using namespace std;

void subsec(char AString[], char Substring[], int start, int length);

int main() {
    char someString[] = "abcdefg";
    char someSubString[] = "";

    subsec(someString, someSubString, 1, 3);
    cout << someSubString << endl;

    return 0;
}

void subsec(char AString[], char Substring[], int start, int length) {
    for (int b = start; b <= length; b++) {
        Substring[b] = AString[b];
    }
}

最佳答案

也许这就是您要找的东西?很难说,因为您的初始实现更多地使用长度参数作为结束位置。

#include <iostream>
using namespace std;

void subsec(char AString[], char Substring[], int start, int length)
{
    const int end = start + length;
    int pos = 0;
    for(int b = start; b < end; ++b)
    {
        Substring[pos++] = AString[b];
    }
    Substring[pos] = 0;
}

int main()
{
    char someString[50] = "abcdefghijklmnopqrstuvwxyz";
    char someSubString[50];

    subsec(someString, someSubString, 13, 10);
    cout << someSubString << endl;

    return 0;
}

关于c++ - 抓取字符串的一部分,如 substr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19760730/

相关文章:

c++ - 在 C++ 命名空间中, `static` 限定符在为 header 中声明的非成员子例程添加前缀时有任何影响吗?

c++ - 错误 : expected type-specifier before 'ClassName'

c++ - 直接声明变量和使用关键字new有什么区别?

c++ - 我可以在 VS2010 中获取 VS2012 标准库吗

c++ - 如何从 HFONT 句柄获取 LOGFONT 结构?

c++ - 使用 Direct x 创建球形网格?

c++ - vector 和push_back()

c# - 执行序列中的异常行为。包括线程,异步和等待

c++ - 创建连接时,Visual Studio 2010 为 Oracle OCCI 11g 报告 "Access violation"

c++ - 实例化重载函数模板