部分文字列の問題 C#
問題
文字 a と文字列 S が与えられるので、 S に a が含まれているかどうか判定し、含まれている場合には “YES” を、そうでない場合には “NO” を出力してください。
入力
a
S
1 行目に文字 a が、 2 行目に文字列 S が与えられます。
出力
S に a が含まれている場合には “YES” を、そうでない場合には “NO” を出力してください。
末尾に改行を入れ、余計な文字、空行を含んではいけません。
なんか解けそうで全く解けなかったので、調べました。
using System;
class Program
{
static void Main()
{
// 自分の得意な言語で
// Let's チャレンジ!!
var a = Console.ReadLine();
string S = Console.ReadLine();
if (S.Contains(a))
{
Console.WriteLine("YES");
}
else
{
Console.WriteLine("NO");
}
}
}
世の中には便利なメソッドがたくさんあるようで、、、。
(S.Contains(a))
これを使えば文字の検索ができるようです。使い方は
(文字列.Conrains(調べたい文字or文字列)
だそうです。
今回変数Sには文字列が、変数aには調べたい文字が入っています。
ぐぅ、、、こんなの動画でやってないお;;
プログラミングは調べる能力もかなり必要だということですな。
一応、paiza c#入門編の動画のみでも解ける方法があるっぽいです(厳密には動画のみの知識では無理かも)。ほかの言語の回答を参考に調べながら出した答えです。
using System;
class Program
{
static void Main()
{
// 自分の得意な言語で
// Let's チャレンジ!!
string inputA = Console.ReadLine();
char a = inputA[0]; // 最初の1文字を取得
// 残りの文字列 S の入力を取得
string S = Console.ReadLine();
bool flag =false;
for(int i =0;i<S.Length;i++){
if(a==S[i])
{
flag=true;
}
}
if(flag)
{
Console.WriteLine("YES");
}
else
{
Console.WriteLine("NO");
}
}
}
単体の文字と文字列の比較が中々できずに断念したんですが、
string inputA = Console.ReadLine();
char a = inputA[0];
こんな感じにstring型で出力した後にchar型に変換すればいけたのは分かりませんでした。
Python3の解答と比較すると、C#ってなかなか癖が強い言語なのですな。
でもゲーム制作にはc#の知識が必要なのでめげずに頑張ります!
この記事が気に入ったらサポートをしてみませんか?