1

文字列 (3 単語) から 3 番目の単語を抽出し、If string is "God Is One" を出力するプログラムを作成しました o/p - One-79-110-101文字列

       #include<iostream.h>
       #include<conio.h>
       #include<stdio.h>
       #include<ctype.h>
       void main ()
       {           
       int i,j,k,x;
       clrscr();
       char a[20];
       cout<<"enter a string";
       gets(a);
       for(i=0;a[i]!='\0';i++)
           {
             if(a[i]==' ')
              {
                for(j=i+1;a[j]!='\0';j++)
                    {
                         if(a[j]==' ')
                            {           
                                    x=j;
                            }
                    }
              }
           }
               for(i=x+1;a[i]!='\0';i++)
                {
                   cout<<a[i];
                }
                for(i=x+1;a[i]!='\0';i++)
                {
                  k =int(a[i]);
                  cout<<"-"<<k;
                }
       getch();
       }
4

2 に答える 2

1

まず第一に、C では、変換で使用scanfして単語を抽出するのがおそらく最も簡単です (ただし、64 バイトのバッファーに読み込む場合のように、常に最大長を指定する必要があります)。同様に、C++ では、文字列抽出 operator を使用するのがおそらく最も簡単です。%s%63s>>

したがって、C++ での最も簡単な方法は、おそらく次のようなものです。

std::string word;
for (int i=0; i<N; i++)
    std::cin >> word;

これは、標準入力から同じ文字列にn単語を読み取るだけです。最初のn-1語のそれぞれは、抽出する次の単語によって単純に上書きされるため、完了したらn番目の単語が保存されていwordます。

このジョブを実行する方法は他にもあり、その中には状況によっては利点があるものもありますが、今のところはおそらくこれで問題ありません。

于 2013-09-26T14:39:48.603 に答える