gpt4 book ai didi

c++ - 使用 isdigit 和 isalpha 将 char 数组设置为彼此相等

转载 作者:行者123 更新时间:2023-11-28 04:41:22 26 4
gpt4 key购买 nike

我试图根据第一个数组中的元素是数字还是字母来设置一个 char 数组等于 2 个其他数组。该代码对我来说具有逻辑意义,但 for 循环之后的其他 2 个字符串的输出与逻辑不符。是因为其他 2 个循环中某处缺少空值还是代码本身无效? arrayAlpha、arrayNum 和 palind 都是 char 数组,长度设置为 30 个元素,而字符串长度在 for 循环开始之前就已经确定了。

for(int k=0; k<=stringLength; k++)
{
if( isalpha(palind[k])){
arrayAlpha[k]=palind[k];}
if ( isdigit(palind[k]))
{
arrayNum[k]=palind[k];
}
}

最佳答案

给定输入:

char palind[30] = "12345abcde";
  • arrayAlpha 是垃圾。

  • arrayNum"12345"

但是,

char palind[30] = "abcde12345";
  • arrayAlpha"abcde"
  • arrayNum 是垃圾。

因此,[k] 是在您的 arrayNumarrayAlpha 中使用时的问题,它不是以 0< 开头.

简单的改变只是减去另一个的长度。

arrayAlpha[k - strlen(arrayNum)] = palind[k];
arrayNum[k - strlen(arrayAlpha)] = palind[k];

因为 lengthOfPalind = lengthOfArrayAlpha + lengthOfArrayNum 假设 palind 只包含字母或数字。

关于c++ - 使用 isdigit 和 isalpha 将 char 数组设置为彼此相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50126773/

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