主字符串中统计子字符串,看似简单之问题,却让我三天两熬夜?为什么不完全对?
一、题目编一个程序,定义一个字符串变量,输入字符串,然后再输入一个字符(或一个字符串),在字符串中查找该字符(或这个字符串)出现的次数。
要求:1、在字符串中统计一个字符出现的次数(已经完成);
2、在主字符串中统计子字符串出现的次数。——看似简单之问题,却让我三天两熬夜【焦急求助】
二、代码
static void Main()
{
Console.WriteLine ("请输入字符串");
string str1 = Console.ReadLine();
Console.WriteLine ("请输入子字符串");
string str2 = Console.ReadLine ();
int str2len = str2.Length;
int str1len = str1.Length;
int x = 0, y = 0;
for (int k = 0; k < str1len-1; k++)
{
for (int j = 0; j < str2len-1; j++)
{
if (str1[k + j] == str2[j])
{
x++;
if (x % str2len == 0)
{
y++;
x = 0;
}
}
}
}
Console.WriteLine("{0}出现{1}次", str2, y);
Console.ReadLine ();
}
三、困惑
1、输入主字符串 hotmahotmahot 输入子字符串 hot ,正确的次数应该是3次,运行结果却是2次。错在哪里?
2、输入主字符串 I am a teacher I am a student 输入子字符串 am ,正确的次数应该是2次,运行结果也是2次。又是为什么?
另:不用substring()编写。
【焦急求助大侠们!!!!】