gpt4 book ai didi

C++ 字符数组错误处理

转载 作者:行者123 更新时间:2023-11-28 02:38:56 25 4
gpt4 key购买 nike

如果我在 C++ 中声明一个字符串数组,例如

char name[10]

如果输入超过字符限制,你会如何处理错误?

编辑:我的作业说要使用 cstring 而不是字符串。输入将是此人的全名。

最佳答案

这是一个示例,其中 setName 在分配 char[10] 属性之前检查大小是否正确。

注意 char[10] 只能存储 9 个字符的名称,因为您需要一个字符来存储字符串结尾。

也许这就是你想要的:

#include <iostream>
#include <cstring>
using namespace std;

#define FIXED_SIZE 10

class Dummy
{
public:
bool setName( const char* newName )
{
if ( strlen( newName ) + 1 > FIXED_SIZE )
return false;

strcpy( name, newName );
return true;
}
private:
char name[FIXED_SIZE];
};

int main()
{
Dummy foo;

if ( foo.setName( "ok" ) )
std::cout << "short works" << std::endl;
if ( foo.setName( "012345678" ) )
std::cout << "9 chars OK,leavs space for \0" << std::endl;
if ( !foo.setName( "0123456789" ) )
std::cout << "10 chars not OK, needs space for \0" << std::endl;
if ( !foo.setName( "not ok because too long" ) )
std::cout << "long does not work" << std::endl;

// your code goes here
return 0;
}

关于C++ 字符数组错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26639267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com