アプリ版:「スタンプのみでお礼する」機能のリリースについて

C言語のコードを教えて下さい。
文字列と文字置換位置を入力して文字1文字を☆に置き換え、置換位置が文字列の文字数を超えた場合は文字列の末尾を☆に変えたいのですが、うまくプログラミングが作動しません。

A 回答 (1件)

#include <stdio.h>


#include <stdlib.h>
#include <string.h>

static char buffer[2048];

char* readline(void) {
 char* cpy;
 fgets(buffer, 2048, stdin);
 cpy = malloc(strlen(buffer) + 1);
 strcpy(cpy, buffer);
 cpy[strlen(cpy) - 1] = '\0';
 return cpy;
}

int main(void){
 char *cpy, *s = readline();
 unsigned long i = atoi(readline());
 cpy = malloc(strlen(s) + 1);
 if (i > strlen(s)) {
  sprintf(cpy, "%s%s", s, "*");
 } else {
  sprintf(cpy, "%s%s", s, "");
  cpy[i] = '*';
 }
 puts(cpy);
 free(cpy);
 return 0;
}
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!