C语言 pointer与strcat

来源:百度知道 编辑:UC知道 时间:2024/05/22 14:06:25
大家好..我又来了..
额 前段时间写了个strncat的程序..要求是把第1个输入的STRING1和第2个输入的STRING的前N个字母连起来...如下...:

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

#define MAX_LEGHTN 1000

void mystrncat(char string1[], char string2[], int n);

int main(void) {
char string1[MAX_LENGTH], string2[MAX_LENGHT];
int n;
printf("Enter string1: ");
fgets(string1, MAX_LENGTH, stdin);

printf("Enter string2: ");
fgets(string2, MAX_LENGTH, stdin);
printf("Enter n: ");
scanf("%d", &n);

mystrncat(string1, string2, n);
return 0;
}

void mystrncat(char string1[], char string2[], int n) {
char string3[MAX_LENGTH];
int i;
for(i = 1, i <= n; i++) {
string3[i-1] = string2[i-1];
string3[i] = '\0';
}
strcat(string1, string3);
p

#include<stdio.h>
int main()
{
printf("Hello World!!!\n");
return 0;
}

void mystrncat(char *string1, char *string2, int n)
//注意不能写成char * string1[],char * string2[],int n
{
char string3[MAX_LENGTH];
int i;
for(i = 1;i <= n; i++) {
*(string3+(i-1)*sizeof(char)) = *(string2+(i-1)*sizeof(char)); //每次移动sizeof(char)个地址单元,像int 的话是4个地址单元,因为int是4个字节,char就是1个字节单元,其实可以不乘sizeof(char)O(∩_∩)O~,这里为了解释下
}
*(string3+(i-1)*sizeof(char)) = '\0';
strcat(string1, string3);
printf("%s\n", string1);
}