gpt4 book ai didi

c - 如何检查字符串是否为无效输入

转载 作者:行者123 更新时间:2023-11-30 21:06:55 26 4
gpt4 key购买 nike

我是新手,即使只是将我链接到另一个论坛,所有帮助也将不胜感激。

我正在编写一个非常基本的程序,我正在使用一个 7 位数的电话号码并在其之间放置一个“-”,例如。 “1234567”至“123-4567”

我希望首先检查用户的电话号码是否为 7 位数字,如果不是,或者是否输入了除数字之外的任何其他字符,我想显示“无效输入”并重新提出问题

感谢您的帮助!

#include <stdio.h>

int main()
{
char phoneNum[6];

printf("Enter your phone number\n: ");
scanf("%s", phoneNum);


printf("Your Phone Number: %.3s", phoneNum);
printf("-%.4s", phoneNum + 3);

return(0);
}

最佳答案

要存储 7 个字符的字符串,字符数组大小必须至少为 8 以存储这 7 个字符以及用于标记字符串结尾的 \0 字符。如果您打算将修改后的字符串与 - 一起存储在同一个数组中,则大小必须至少为 9。

char phoneNum[9];

并且用户可能输入超过 7 个字符而导致溢出。

尝试

scanf("%7s", phoneNum);

要查找字符串是否全是数字,请使用循环

for(i=0; phoneNum[i]!='\0'; ++i)
{
if(!isdigit(phoneNum[i]))
{
break;
}
}
if(phoneNum[i]!='\0')
{
printf("\nInvalid input.");
}

要查找字符串的长度,请使用strlen()

要在字符串的第三个索引处插入 -,您必须将所有索引从该索引移动到字符串末尾(包括 \0 字符)。

for(i=8; i>3; --i)
{
phoneNum[i]=phoneNum[i-1];
}
phoneNum[3]='-';

关于c - 如何检查字符串是否为无效输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46311728/

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