char *words="abdcded";
char *words2;
Wordsに入っている文字列は固定していませが、もし、最後の2文字がedの場合はそのedを削除してword2にコピーします。この例の場合はword2はabcdです。
どのようなコーディング方法がありますでしょうか。教えてください。
#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;
}
}
ベタな感じで書いてみました。
#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
#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;
}
}
ちなみにGCC?
ありがとうございます。
*ptr = 0x00;
で出来ました
ちなみにGCC?
2011/11/28 16:31:54ありがとうございます。
2011/11/28 16:32:54*ptr = 0x00;
で出来ました