これはプログラムの最初の部分であり、どの部分が正確に機能するかについていくつか質問があります。これが私が書いた最初のCプログラムであることに留意してください。 scanf( "%d"、& numberOfTimes); &が必要な理由とは何ですか? char入力[] [200];これは基本的に文字列の配列ですか、それともまったく別のものですか?C言語のchar配列の最初の半分にある文字をすべて検出するプログラム
#include <stdio.h>
#include <string.h>
char outputs[100];
char input[][200];
int numberOfTimes;
void io(void){
scanf("%d", &numberOfTimes);
for(int i = 0; i < numberOfTimes; i++){
scanf("%s",input[i]);
}
}
このコードの次の部分は、実際に問題を解決するために私の試みですが、私は、関数の使用を台無ししかし、私は私が手にするために、不適切なものを使用した1か分からないと思われますこの結果。 (私は私のコード例を下に示しています)。
void stringManipulation(char string[200]){
int strLength = strlen(string);
int number = strLength/2;
for(int i = 0; i <= number; i=i+2){
strcat(outputs,&string[i]);
}
}
int main(void) {
io();
for(int i = 0; i < numberOfTimes; i++) {
stringManipulation(input[i]);
printf("%s\n",outputs);
memset(&outputs[0], 0, sizeof(outputs));
}
return 0;
}
memsetを正しく使用しましたか?再び私は&の使用を理解していません。
例入力:
4
your
progress
is
noticeable
予想される出力:
y
po
i
ntc
私は取得しています出力:
yourur
progressogressress
is
noticeableticeableceable
はあなたの助けをいただき、ありがとうございます。
'char input [] [200];'、コンパイラは –
に文句を言う必要があります。 – kar3154
エラーのあるプログラムを実行した結果は無意味です。たとえば、あなたのケースでは、たくさんのガベージ出力がありますが、何かが起こった可能性があります。 –