プロが教える店舗&オフィスのセキュリティ対策術

【至急】C言語の問題です、どなたか分かる方いませんか?
以下のコードは配列abcdeをbodesにずらすプログラムです。この…の部分にshift_string関数を作成・追加することでプログラムを完成させてください。

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

void shift_string(char *c) /* 例 */
{
int i,n;
n=strlen(c); /*文字列を数える; ここではn=5となる*/
char d[n]; /* ずらす作業のために用いる文字配列 */

i = 0;
while(c[i] !='\0' ){ /* 文字列の最後で無い場合はずらす作業をする */
.......}
.......
}

int main()
{
char c[]="abcde";

puts(c); /* "abcde"が表示される */

shift_string(c);

puts(c); /* "bcdea"が表示される */

return 0;
}

よろしくお願いいたします。

A 回答 (1件)

string.h の memmove() 使うとよいですよ。

頭使わないで済みます。
https://www.ideone.com/wpZxRK

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

char s[] = "0123456789";

int shift_string( char *s ){
int n = strlen( s );
s[n] = s[0];
memmove( s, s+1, n );
s[n] = '\0'; }
int main(void) {
printf( "mae: %s\n", s ); shift_string( s );
printf( "ato: %s\n", s ); }
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A