编写一个程序,将字符数组s2中的全部字符复制到字符数组s1中,不用strcpy函数。复制时,‘\0’也要赋值过去。’\0’之后的字符不复制。
char* my_strcpy(char* arr1, const char* arr2) { assert(arr1&&arr2); char* start = arr1; while (*arr2!='\0') { *arr1 = *arr2; arr2++; arr1++; } *arr1 = '\0'; return start; } int main() { char arr1[20] = { 0 }; char arr2[20] = "I love you!"; my_strcpy(arr1,arr2); printf("%s\n",arr1); return 0; }
#include <stdio.h>
#include <stdlib.h>
int main(){
char s1[100];
char s2[ ]="you are my best friend";
for(i;i<strlen(s2);i++){
s1[strlen[s1]+i]=s2[i];
if(s2[i]=='\0') break;
}
return 0;
1
#include <stdio.h> void func(char *s1, char *s2) { int i = 0; // 逐字符复制,包括 '\0' 终止符 while ((s1[i] = s2[i]) != '\0') { i++; } } int main() { char s1[100]; // 目标字符串 char s2[] = "Hello, world!"; // 源字符串 func(s1, s2); // 复制 s2 到 s1 printf("复制后的 s1: %s\n", s1); // 输出复制结果 return 0; }
#include <stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> #define N 20 int main(void) { char word[N]={'h','e','\0','l','l','o','\0'}, word1[N];
for (int i = 0; i < N; i++) { if (word[i] =='\0') { word1[i] = '\0'; break; } word1[i] = word[i]; } puts("复制过后"); printf("%s\n", word1); return 0; }
【答案解析】
首先必须保证s...
登录后提交答案