gpt4 book ai didi

c - 如何在姓名前添加验证 mr 或 mrs

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:36:16 25 4
gpt4 key购买 nike

我正在通过 do while 语句在姓名前使用 Mr 或 ms 或 Mrs 对输入姓名进行验证。我应该在 while 部分填写什么?

它是使用 strcmp 还是其他什么?

编码示例

do{
printf("Input Customer's Name [must have Mr. or Ms. or Mrs");
scanf("%[^\n]", &customerName);
}while(what should i fill here?);

最佳答案

编写一个单独的函数来检查名称是否以列出的字符串开头。

例如

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

int start_with( const char *s, const char * a[] )
{
int success = 0;

s += strspn( s, " \t" );

for ( ; *a != NULL && !success; ++a )
{
success = memcmp( s, *a, strlen( *a ) ) == 0;
}

return success;;
}

int main(void)
{
const char *title[] = { "Mr.", "Ms.", "Mrs.", NULL };
enum { N = 100 };
char name[N];

do
{
printf( "Input Customer's Name [must have %s or %s or %s: ", title[0], title[1], title[2] );
name[0] = '\0';
fgets( name, N, stdin );
name[strcspn( name, "\n" )] = '\0';
} while ( !start_with( name, title ) );

puts( name );

return 0;
}

程序输出可能是这样的

Input Customer's Name [must have Mr. or Ms. or Mrs.: Bob
Input Customer's Name [must have Mr. or Ms. or Mrs.: Mr. Bob
Mr. Bob

关于c - 如何在姓名前添加验证 mr 或 mrs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57392829/

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