gpt4 book ai didi

c - 关于C程序基础的两个问题

转载 作者:行者123 更新时间:2023-12-02 20:17:58 26 4
gpt4 key购买 nike

1.

如果 3 字符 passCode 包含数字,则将 hasDigit 设置为 true。

#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <ctype.h>

int main(void) {
bool hasDigit;
char passCode[50];

hasDigit = false;
strcpy(passCode, "abc");

/* Your solution goes here */

if (hasDigit) {
printf("Has a digit.\n");
}
else {
printf("Has no digit.\n");
}

return 0;
}

我尝试过的(代替/* 你的解决方案放在这里 */是:

if (isdigit(passCode) == true) {
hasDigit = true;
}
else {
hasDigit = false;
}

测试时

abc

它可以工作,但是在测试时

a 5

它不起作用。

2.

将 2 字符字符串 passCode 中的任何空格“”替换为“_”。给定程序的示例输出:

1_

#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main(void) {
char passCode[3];

strcpy(passCode, "1 ");

/* Your solution goes here */

printf("%s\n", passCode);
return 0;
}

我代替/* 你的解决方案放在这里 */的是:

   if (isspace(passCode) == true) {
passCode = '_';
}

编译失败。

感谢您的帮助。

最佳答案

以下是使用 for 循环的方法;

#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <ctype.h>

int main(void) {
bool hasDigit;
char passCode[50];

hasDigit = false;
strcpy(passCode, "abc");

/* Your solution goes here */
for (int i=0; passCode[i]; i++)
if (isdigit(passCode[i]))
hasDigit = true;

if (hasDigit) {
printf("Has a digit.\n");
}
else {
printf("Has no digit.\n");
}

return 0;
}

关于c - 关于C程序基础的两个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51990590/

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