C言語のプログラムについて教えてください。


char *words="abdcded";
char *words2;

Wordsに入っている文字列は固定していませが、もし、最後の2文字がedの場合はそのedを削除してword2にコピーします。この例の場合はword2はabcdです。

どのようなコーディング方法がありますでしょうか。教えてください。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/11/28 15:43:06
  • 終了:2011/11/28 16:34:40

ベストアンサー

id:Vacuum No.2

Vacuum回答回数54ベストアンサー獲得回数42011/11/28 16:07:07

ポイント50pt

#include <stdio.h>

void main () {

char *words = {"abdcded"};
char *words2 = 0x00;
char *ptr = words+strlen(words)-2;

if (!strcmp(ptr,"ed")) {
ptr = 0x00;
words2 = words;
}
}

他1件のコメントを見る
id:Vacuum

ちなみにGCC?

2011/11/28 16:31:54
id:mai_mai_mail

ありがとうございます。
*ptr = 0x00;
で出来ました

2011/11/28 16:32:54

その他の回答(1件)

id:a-kuma3 No.1

a-kuma3回答回数4443ベストアンサー獲得回数18252011/11/28 15:57:25

ポイント50pt

ベタな感じで書いてみました。

#include <stdio.h>
#include <string.h>

int main()
{
    char *words = "abcded";
    char *words2;
    int n;

    words2 = strdup(words);

    n = strlen(words2);
    if (words2[n - 2] == 'e' && words2[n - 1] == 'd') {
        words2[n - 2] = '\0';
    }

    printf("words2 = '%s'\n", words2);

    return 0;
}

ideone.com で、試したものです。
http://ideone.com/NPaKY

id:Vacuum No.2

Vacuum回答回数54ベストアンサー獲得回数42011/11/28 16:07:07ここでベストアンサー

ポイント50pt

#include <stdio.h>

void main () {

char *words = {"abdcded"};
char *words2 = 0x00;
char *ptr = words+strlen(words)-2;

if (!strcmp(ptr,"ed")) {
ptr = 0x00;
words2 = words;
}
}

他1件のコメントを見る
id:Vacuum

ちなみにGCC?

2011/11/28 16:31:54
id:mai_mai_mail

ありがとうございます。
*ptr = 0x00;
で出来ました

2011/11/28 16:32:54

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません