如何在"Surname"内添加数组"Name" 通过 C 语言中指示的位置编号?



示例:

name: John 
surname: Smith 
position: 2 
result: JoSmithhn

法典:

#include <stdio.h> 
#include <stdlib.h> 
int main() {
    char name[50] = "John";
    char surname[50] = "Smith";
    char result[50] = { 0 };
    int pos;
    printf("Position: ");
    scanf_s("%d", &pos);
    for (int i = 0; i < pos; ++i) {
        result[i] = name[i];
    }
    for (int i = 0; i < surname[i]; i++) {
        result[pos + i] = surname[i];
    }
    printf("%sn", result);
    system("pause");
    return 0;
}

请注意,resultsurnamename 一样长,因此当它们在一起超过 50 个字符时,您将丢失数据。

像这样的东西可以实现你的示例,而不需要 for 循环。

#include <stdio.h>
#include <string.h>
int main() {
    char name[50] = "John";
    char surname[50] = "Smith";
    char result[100];
    int pos;
    printf("Position: ");
    scanf("%d", &pos);
    char buf[pos];
    memcpy(buf, name, pos);
    snprintf(result, 100, "%s%s%sn", buf, surname, name + pos);
    printf(result);
    return 0;
}

最新更新