gpt4 book ai didi

c++ - 有没有更好的方法来为 C++ 编写这个?

转载 作者:行者123 更新时间:2023-11-28 01:14:58 26 4
gpt4 key购买 nike

<分区>

目标是通过提取由空格分隔的单词,从输入的字符串中创建子字符串。

子串本身必须是变量。

听起来很简单,但困难在于您只能使用 strcpy、strcmp、strlen、strcat、strncpy、strncmp、strnlen 和 strncat。

例子:

输入:

“约翰 40 killer ”

司机:

...

cout << word1 << endl
<< word2 << endl
<< word3 << endl;

输出:

John
40
Hitman

这是我的代码

#include <iostream>
#include <cstring>
#include <stdio.h>

int main(){

const char *string = "Name Age Job";
char name[10];
char age[10];
char job[10];
int length = strlen(string);
int temp = 0;
bool flag = false;

for(int i = 0; i < length + 1; i++){
if(isspace(string[i]) && !flag){
strncpy(name, string, i);
name[i] = '\0';
temp = i;
flag = !flag;
cout << name << endl;
continue;
}
if(isspace(string[i])){
strncpy(age, string + temp + 1, length - i - 1);
age[temp - i] = '\0';
temp = i;
cout << age << endl;
continue;
}
if(string[i] == '\0'){
strncpy(job, string + temp + 1, length);
job[temp - i] = '\0';
cout << job << endl;
}
}

它有效,但它必须使用标志 bool 值,字符串不是动态的,仅适用于具有 2 个空格的字符串,并且有很多重复代码。总的来说真的很糟糕,但我花了大约两个小时在这上面,我不知道如何改进它。

如果你想知道,这确实是一道作业题,但这是一门入门课,我的教授只希望正确输出只有 3 个单词的硬编码字符串。但是,我想学习如何改进它,如果有任何帮助,我将不胜感激。谢谢。

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