人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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

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



●質問者: mai_mai_mail
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● a-kuma3
●50ポイント

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

#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


2 ● Vacuum
●50ポイント ベストアンサー

#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;
}
}


Vacuumさんのコメント
#include <string.h> 忘れてました。

Vacuumさんのコメント
ちなみにGCC?

mai_mai_mailさんのコメント
ありがとうございます。 *ptr = 0x00; で出来ました
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ