-2

例えば:

これは私が試したものです:

#include "stdafx.h"
#include <ctype.h>

char *mystrcat(char *s1p, char *s2p); 
char main(void)
{
    ...........................
}

char *mystrcat(char *s1p, char *s2p) 
{

    printf("whatever = %s%s\n", s1p, s2p);
    return 0;   
}

p1これを 3 番目のポインタで機能させ、保存するにはどうすればよいp2ですか?

4

4 に答える 4

3

置換:次*mystrcat(string1, string2);
のように:char *string3 = mystrcat(string1, string2);

また、先生が代わりにchar*を必要としている場合

char string1[80];  
char string2[80];

あなたができる

char *string1 = malloc(80*sizeof(char));
char *string2 = malloc(80*sizeof(char));

文字列を連結するには:

char *mystrcat(char *s1p,char *s2p) {
    char *cat = malloc(2*80*sizeof(char));
    int i = 0;
    while(s1p[i]!='\o') {
        cat[i] = s1p[i];
        i++;
    }
    int j = 0;
    while(s2p[j]!='\o') {
        cat[i+j] = s2p[j];
        j++;
    }
    return cat;   
}
于 2012-10-22T22:56:31.303 に答える
0
#include "stdafx.h"
#include <stdlib.h>
#include <string.h>
#include <Windows.h>
#include <ctype.h>

char *mystrcat(char*s1p, char*s2p); // Prototype

int main(void)
{

    char *string1 = malloc(80*sizeof(char));
    char *string2 = malloc(80*sizeof(char));

    printf("Enter in string 1");
    scanf("%s", string1);

    printf("Enter in string 2");
    scanf("%s", string2);

    char *mystrcat((string1,string2));
return 0;

}

char *mystrcat(char *s1p,char *s2p) 
{

    char *cat = malloc(2*80*sizeof(char));
int i = 0;
while(s1p[i]!='\o') {
    cat[i] = s1p[i];
    i++;
}
int j = 0;
while(s2p[j]!='\o') {
    cat[i+j] = s2p[j];
    j++;
}
return cat;


}

これは、あなたの多くの助けを借りてこれまでに得たコードです。上から下まですべてを含めました。MSVS 2012 を使用しています。これを投稿する理由は、「malloc」でエラーが発生したためです。

3   IntelliSense: a value of type "void *" cannot be used to initialize an entity of type "char *"  c:\Users\Sid\Documents\Visual Studio 2012\Projects\PORTFOLIO QUESTION 3\PORTFOLIO QUESTION 3\PORTFOLIO QUESTION 3.cpp   32
于 2012-10-27T19:01:09.737 に答える
0

悪いコーディングの習慣は別として (私はしばらくの間 C をやっていましたが、まだ一部を修正していません)、mystrcat(string1, string2) というエラーが 1 つあります。戻り値の型は charですが、関数自体には「その中に」ポインターがあります (説明が難しい)。したがって、それは mystrcat(string1, string2) である必要があります

于 2012-10-22T22:52:19.627 に答える
0

文字列を連結する関数を書きたいようです。これを行うには、頭の中で文字列、2 つの入力文字列、および結果の文字列を視覚化できる必要があります。

これを解決するアルゴリズムは次のとおりです。

  • 指定された入力の合計文字数に 1 を加えた十分なスペースを持つ結果文字列を作成します。
  • 最初の文字列のバイトを結果にコピーします。
  • esconds 文字列の文字を結果に追加します
  • ヌル文字を追加
  • 結果を返す

プログラミングとは、問題を見て、アルゴリズムを考案し、プログラミング言語で実装する能力です。

于 2012-10-22T23:02:31.240 に答える