私のコードに問題があり、私はあなたの助けが必要です!私がする必要があるのは、www.
から始まり、入力された文字列から.edu
で終わるWebアドレスを抽出する関数を書くことです。入力された文字列には空白が含まれないため、ここではscanf()
がうまく動作するはずです。例えばCの文字列からWebアドレスを抽出する
:
http://www.school.edu/admission
。抽出されたアドレスはwww.school.edu
である必要があります。
これは私がこれまでに思いついたことですが、明らかにうまくいかず、残念なことに他のことは考えられません。
void extract(char *s1, char *s2) {
int size = 0;
char *p, *j;
p = s1;
j = s2;
size = strlen(s1);
for(p = s1; p < (s1 + size); p++) {
if(*p == 'w' && *(p+1) == 'w' && *(p+2) == 'w' && *(p+3) == '.'){
for(p; p < (p+4); p++)
strcat(*j, *p);
}
else if(*p=='.' && *(p+1)=='e' && *(p+2)=='d' && *(p+3)=='u'){
for(p; (p+1) < (p+4); p++)
strcat(*j, *p);
}
}
size = strlen(j);
*(j+size+1) = '\0';
}
関数は、ポインタ演算を使用しなければなりません。エラーは、互換性のない型やキャストと関係があります。先にありがとう!
質問に**完全**エラーメッセージを含めてください。それが私たちの多くを助けます。 –
'char'データを' strcat() 'に渡すことは良い考えではありません。 – MikeCAT
'p <(p + 4)'と '(p + 1)<(p + 4)'は、定義されていれば常に真です。 – MikeCAT