C等效函数

C equivalent function

我正在执行转换任务

void f(char s[], char t[]){   
    int k=0;
        while (s[k]=t[k])  k++; 
} 

转换为

的等效形式
void f(char *s, char *t)
{    
    while (____);
}

我知道可以转换成

void f(char *s, char *t){
    int k=0;
    while (*(s+k)=*(t+k))k++;
}

问题是,只允许填写括号。我运行没主意

简单地增加指针本身。

void f(char *dest, char *source) {
    while ((*dest++ = *source++));
}

这将在分配的字符为 NUL ('[=12=]') 时结束循环。

示例程序,类型限定符正确性:

#include <stdio.h>

void f(char *dest, const char *source) {
    while ((*dest++ = *source++));
}

int main(void) {
    char buffer[32];
    const char *string = "Hello, world!";
    f(buffer, string);
    puts(buffer);
}

当然,这与标准库strcpy有相同的问题,您必须小心确保在之前[=]目标缓冲区中有足够的space 24=]调用这个函数。

void f(char *s, char *t)
{    
    while (*s++ = *t++);
}