2 sinat 34555918 sinat_34555918 于 2016.04.28 19:34 提问

新手C语言问题,求指教

要求编一个strcpy函数的原型 我大概写了一下 可是跟预期不一样 有没有人愿意指点一下图片说明

2个回答

b491985496
b491985496   2016.04.28 20:22
已采纳

字符串数组先用“”初始化一下,然后fuzhi函数最后加一个'\0',源码在下面,顺便把比较也实现给你好了,
#include "stdio.h"
#include "iostream"
#include
using namespace std;

void fuzhi(const char* src, char* des)
{
int i = 0;
for (; src[i] != '\0'; i++)
{
des[i] = src[i];
}
des[i + 1] = '\0';
}

int bijiao(char* src, char* des)
{
int i = 0;
while (true)
{
if (src[i] == '\0' || des[i] == '\0')
{
if (src[i] == '\0' && des[i] == '\0')
{
return 0;
}
else
{
if (src[i] == '\0' && des[i] != '\0')
return -1;
else
return 1;
}

    }
    int iState = int(src[i]) == int(des[i]);
    if (iState == 1)
    {
        iState = 0;
    }
    else
    {
        iState = int(src[i]) - int(des[i]);
    }
    if (iState  != 0)
    {
        return iState;
    }
    i++;
}

}
void main()
{
char src[256] = "I am src string";
char des[255] = "";
fuzhi(src, des);
cout << src << endl;
cout << des << endl;
cout << bijiao(src, des) << endl;
strcpy_s(des, src);
cout << bijiao(src, des) << endl;
system("pause");
}


b491985496
b491985496 des[i] = '\0'; 不好意思这里笔误了一下,是des[i]不是des[i+1],sorry
一年多之前 回复
havedream_one
havedream_one   2016.04.28 20:24
#include <stdio.h>
void fuzhi(char word1[],char word2[]){
    int i = 0;
    for(i = 0; word2[i] != '\0'; i++){
        word1[i] = word2[i];
    }
    word1[i] = '\0';
    puts(word1);
}   
void main(){
    char str1[10], str2[10];
    gets(str1);
    gets(str2);
    fuzhi(str1,str2);
    puts(str1);
}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!