0

以下は私が書いたコードです。ifステートメントは天気を判断するためのものであり、単語が文に含まれていませんが、関数を持ちたいと考えています。誰でもこれと何をテストできますか

#include <iostream>
#include <cstdio>
#include <string> 
#include <iomanip> 

using namespace std;

int main ()
{
char sentence[50]; 
char search [50];
int numtimes = 0;

cout << "Enter a sentence: " << endl; 
gets_s (sentence); 
cout << endl; 
cout << "Your sentence is: \n" << sentence << endl;


cout << "Enter a any word: " << endl;
gets_s (search);
cout << endl;
cout << "The word is: " << search << endl;

int i, len;
int j, lenS;
len = strlen(sentence); 
lenS = strlen(search);


for (i = 0; i < len - lenS + 1; i++)
{
    if (sentence[i] == search[0])
    {
        for (j = 0; j < lenS; j++)
        {
            if (sentence[i+j] != search[j])
                break; 
        }
        if (j == lenS)
        {
            cout << "search found\n";
            break;
        }
    }
}

if (i == len - lenS +1)
{
    return 1;
}



system("PAUSE"); 
return 0; }
4

1 に答える 1

0

関数やパラメータを勉強するにはこれが必要だと思います。コードを関数に入れる方法を示すためだけに、コードに最小限の変更を加えました。

#include <iostream>
#include <cstdio>
#include <string>
#include <iomanip>

using namespace std;

// the function is here
bool searchWord(char* sentence, char* search)
{
    int i, len;
    int j, lenS;
    len = strlen(sentence);
    lenS = strlen(search);

    bool found = false;
    for (i = 0; i < len - lenS + 1; i++)
    {
        if (sentence[i] == search[0])
        {
            for (j = 0; j < lenS; j++)
            {
                if (sentence[i+j] != search[j])
                    break;
            }
            if (j == lenS)
            {
                //cout << "search found\n";
                found = true;
            }
        }
    }

    if (i == len - lenS +1)
    {
        found = false;
    }

    return found;
}

int main ()
{
    char mySentence[50];
    char mySearch [50];
    int numtimes = 0;

    cout << "Enter a sentence: " << endl;
    gets (mySentence);
    cout << endl;
    cout << "Your sentence is: \n" << mySentence << endl;


    cout << "Enter a any word: " << endl;
    gets (mySearch);
    cout << endl;
    cout << "The word is: " << mySearch << endl;

    if (searchWord(mySentence, mySearch)) {
        cout << "Found\n";
    }
    else
    {
        cout << "Not Found\n";
    }

    system("PAUSE");
    return 0; 
  }   

2 つの注意事項:

  1. 単語の最後の文字を見つけた後、スペースを確認したい場合があります。例: 文: 文は英語である必要があります 単語: 文

  2. string.h には、このタイプのタスクで便利な関数がいくつかあります。

于 2013-11-13T05:38:00.613 に答える