c++ - 通过函数 C++ 截断 char 数组

标签 c++ truncate

尝试格式化此函数,因为它会截断一个字符数组(用户输入的任何内容都会将其拆分为用户也输入的数字)

void truncate(char array[], int maxLength)
{
    // Variable definition
    int x = 0;

    // While loop start.
    while (array[x] <= maxLength)
    {
        cout << array[x];
        x++;
    }
}

函数头中的数组参数只是用户输入的字符串,是一个char数组。并且 maxLength 参数也是用户输入的 int 变量,它可以是 3、4 或 5。maxLength 应该充当空终止,无论用户输入什么,字符串都会在该数字后截断。

但是这段代码不起作用,它不显示函数的输出。有人知道我做错了什么吗?谢谢。

最佳答案

这里的问题是:

while (array[x] <= maxLength)

这是将 x 处的数组返回的字符与 maxLength 的值进行比较,因此您将 char 与 int 进行比较。为此,我会推荐更标准的 for 循环:

for (int x = 0; x < maxLength; x++) {
    cout << array[x];
}

关于c++ - 通过函数 C++ 截断 char 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45777066/

相关文章:

c++ - 如何在 PostgreSQL 中创建插入、删除或更新命令的信号并在 C++ 中处理它们?

python - 在python中截断字符串

mysql - 截断命令(Hive 与 SQL)

sql - 在 Oracle SQL 中将用户提示作为日期(甚至是字符串)传递

substring - 如何使用 SQL*Loader 截断数据以适合字段? (ORA-12899)

C++ 指针作为 DWORD

使用 delete [] 和重载 += 的 C++ 堆损坏

log4j 截断堆栈跟踪

c++ - cudaMemcpyToSymbol 使用或不使用字符串

c++ - 将 "pass"函数模板作为通用可变参数 lambda 返回语句的好方法吗?