私は、次のコードを持っている:出力が変化
それは正しい出力を与える#include<iostream>
#include <string.h>
using namespace std;
int main(){
char str[100], str1[100];
cin>>str>>str1;
char c[strlen(str1)], flag[strlen(str1)];
int i, j, k = 0;
for (i = 0; i < strlen(str1); i++) {
flag[i] = 0;
}
for (i = 0; i < strlen(str); i++) {
for (j = 0; j < strlen(str1); j++) {
if (str[i] == str1[j] && flag[j] == 0) {
c[k] = str[i];
k++;
flag[j] = 1;
break;
}
}
}
if (k != 0)
cout<<c;
return 0;
}
(最初の行が入力された):
hello world
lo
をしかし、それはする必要があり出力
#include<iostream>
#include <string.h>
using namespace std;
char * func(char * str, char * str1){
char c[strlen(str1)], flag[strlen(str1)];
int i, j, k = 0;
for (i = 0; i < strlen(str1); i++) {
flag[i] = 0;
}
for (i = 0; i < strlen(str); i++) {
for (j = 0; j < strlen(str1); j++) {
if (str[i] == str1[j] && flag[j] == 0) {
c[k] = str[i];
k++;
flag[j] = 1;
break;
}
}
}
if (k != 0)
return c;
return NULL;
}
int main(){
char str[100], str1[100];
cin>>str>>str1;
cout<<func(str,str1);
return 0;
}
- 私はこのような、関数内のコードを入れて機能func()
の内側に置くこと第二の出力ラインは、ASCII文字 ここでのミスは何が含まれていることを
hello world
ノートのように来ますか?このような文字列配列を返すことはできませんか?
オンラインのコードジャッジエンジンに関する質問はここでは控えてください。テストケースからどこに失敗したのかは誰にも分かりませんが、これは通常は公開されていないためです。テストしたものがあなたのローカル環境で実行されていたとしても、オンラインチャレンジに適用されるいくつかのエッジケースをテストすることができなかったかもしれません。創造的で見つけよう。さらに、オンラインコンテストを不正行為すること以外にも、長期的にそのような質問の価値はないと考えられ、何も学ばれていません。 –
これは裁判官ベースの質問ではありません!私はちょうど私がなぜ機能を使用したいのかといって、余分な情報についてそれを話しました。主な質問は、出力が変更される理由です。 –
Debug? ........ –