zoukankan      html  css  js  c++  java
  • 前缀判断 蓝桥杯

    欢迎访问我的新博客:http://www.milkcu.com/blog/

    原文地址:http://www.milkcu.com/blog/archives/1371004260.html

    标题:前缀判断 - 蓝桥杯

    内容:2013年第四届蓝桥杯全国软件大赛预赛第5题,代码填空题。

    作者:MilkCu

    题目描述

    题目标题:前缀判断
    如下的代码判断 needle_start指向的串是否为haystack_start指向的串的前缀,如不是,则返回NULL。
    比如:"abcd1234" 就包含了 "abc" 为前缀

    char* prefix(char* haystack_start, char* needle_start)
    {
    	char* haystack = haystack_start;
    	char* needle = needle_start;
    
    	
    	while(*haystack && *needle){
    		if(______________________________) return NULL;  //填空位置
    	}
    	
    	if(*needle) return NULL;
    	
    	return haystack_start;
    }

    请分析代码逻辑,并推测划线处的代码,通过网页提交。
    注意:仅把缺少的代码作为答案,千万不要填写多余的代码、符号或说明文字!!

    分析

    该题涉及到两个字符串:haystack为要判断的字符串,needle为前缀。通过返回值,很容易得到答案。

    代码实现

    我们可以通过下面的完整代码检验一下结果。

    # include <stdio.h>
    char* prefix(char* haystack_start, char* needle_start)
    {
    	char* haystack = haystack_start;
    	char* needle = needle_start;
    
    	while(*haystack && *needle){
    		if(*(haystack++) != *(needle++)) return NULL;  //填空位置
    	}
    	
    	if(*needle) return NULL;
    	
    	return haystack_start;
    }
    int main(void)
    {
    	char * haystack = "abcd1234";
    	char * needle = "abc";
    	printf("%s\n", prefix(haystack, needle));
    }

    最后答案

    *(haystack++) != *(needle++)

    (全文完)

  • 相关阅读:
    OleDbCommand 的用法
    递归求阶乘
    C#重写窗体的方法
    HDU 5229 ZCC loves strings 博弈
    HDU 5228 ZCC loves straight flush 暴力
    POJ 1330 Nearest Common Ancestors LCA
    HDU 5234 Happy birthday 01背包
    HDU 5233 Gunner II 离散化
    fast-IO
    HDU 5265 pog loves szh II 二分
  • 原文地址:https://www.cnblogs.com/milkcu/p/3808884.html
Copyright © 2011-2022 走看看