-1

この関数を記述して、ソース文字列から右から宛先文字列に count 個の文字を転送します。文字列を src に、NULL を dst に、カウント値を関数に渡しています。

入力文字列を「スタック オーバーフロー」として送信し、カウントが 4 の場合、o/p 文字列を「フロー」として使用します。しかし、ここで私のo/p文字列は常に空です。私のロジックのどこが間違っているのか教えてください。お願いします

char *Rprint(const char *src, char *dst, int count)
{
    int i = 0;
    char *ret = NULL;
    while(*src!= '\0')
        src++;
    dst = malloc(sizeof(char) * (count + 1));
    ret = dst;
    dst = dst + (count + 1);
    while(count)
    {
        *dst++ = *src--;
        count--;
    }
    *dst++ = '\0';
    //return ret;
    printf("String:%s \n", ret);

}
4

2 に答える 2

0

これは、元のアプローチに基づいた作業コードですが、修正はほとんどありません。

#include <stdio.h>

void Rprint(const char [], char [], int );


int main()
{
char buff[50] = "stack overflow";
char cut [50];

Rprint(buff,cut,5);
puts(cut);
}


void Rprint(const char src[], char dst[], int count)
{

    while(*src!= '\0')
       src++;

    src = src - count;

    while(count--)
        *(dst++) = *(src++);

    *(dst++) = '\0';

}
于 2013-03-08T03:13:08.087 に答える