[ブルーブリッジカップ]試験トレーニング2013C ++ Aグループ質問5プレフィックス判定

プレフィックス判定 

タイトル:プレフィックスの判断
次のコードは、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; }コードロジックを分析し、下線でコードを推測して、Webページから送信してください。注:不足しているコードのみを回答として使用し、冗長なコード、記号、説明テキストは入力しないでください


 
    



    

    



回答案:*(haystack ++)!= *(needle ++)

 

問題分析

埋める場所を見つけたら、ポインタを動かして、ポインタが指す文字が等しいかどうかを確認する必要があります。

穴埋めの問題に直面して、最初にコードをコンパイラーに入れて、それをコンパイルしてみてください。記入するコードについて一定の判断を下し、問題の解決方法に関するコードを記入してください。

#include <iostream>
using namespace std; 
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

char* prefix(char* haystack_start, char* needle_start)
{
	char* haystack = haystack_start;	//原串 
	char* needle = needle_start;	//前缀 
	
	
	while(*haystack && *needle){	//两个指针都没有越界 
//		if(______________________________) return NULL; //填空位置
//移动指针,判断是否相等
		if(*(haystack++)!= *(needle++)) 
			return NULL;
	}
	
	if(*needle) 
		return NULL;
	
	return haystack_start;
}

int main(int argc, char** argv) {
	cout << prefix("abc123", "abd");
	return 0;
}

 

おすすめ

転載: blog.csdn.net/weixin_44566432/article/details/115139087