注册 登录
编程论坛 C语言论坛

有关字符串的提取与比较

兆尼 发布于 2022-11-18 11:48, 614 次点击
Input
输入N,表示有N个同学,接下来输入N行字符串表示每个同学的手机号。其中N<30,所有手机号码数据长度小于30。

Output
假设所有N同学都是一个班的,请输出他们的手机号前面到底有多少位是相同的。

input        output
4            2
00209
00219
00999
00909
output
1 回复
#2
rjsp2022-11-18 14:51
程序代码:
#include <stdio.h>

int main( void )
{
    size_t n;
    scanf( "%zu", &n );

    size_t result;
    char buf[30]; // 题目限制“所有手机号码数据长度小于30”
    scanf( " " );
    scanf( "%s%zn", buf, &result );
    while( --n )
    {
        char tmp[30];
        scanf( "%s", tmp );

        size_t cmn;
        for( cmn=0; cmn!=result && tmp[cmn]==buf[cmn]; ++cmn );
        result = cmn;
    }

    printf( "%zu\n", result );
}
1