如何使Array与C中的另一个数组相等

时间:2015-09-30 19:02:47

标签: c arrays variables variable-assignment

我无法在c中使数组等于另一个数组。 在main方法中,它不允许我将inputInt1分配给converTwosComp的返回值。

#include <stdio.h>
#include <stdlib.h>
int validChecker(char *input_StringIn);
int* convertTwosComp(char *inputStringIn, int *inputIntIn);
int main(void) {
    char inputString1[11];
    char inputString2[11];
    int inputInt1[11];
    int inputInt2[11];

    printf(" is ");
    inputInt1 = convertTwosComp(inputString1, inputInt1);
    for(i = 0; inputString1[i]; i++){
        printf("%d", inputInt1[i]);
    }


    int * convertTwosComp(char *inputStringIn, int *inputIntIn){
    int digit;
    int i;

    if((inputStringIn[0] == '+') ||(inputStringIn[0]) == '0'){
        inputStringIn[0] = 0;
    }
    if(inputStringIn[0] == '-'){
        inputStringIn[0] = 1;
    }
    for(i = 0; inputStringIn[i]; i++){
        digit = inputStringIn[i] - '0';
        inputStringIn[i] = digit;
    }

    for(i = 0; inputIntIn[i]; i++){
        if(inputIntIn[i] == 0){
            inputIntIn[i] = 1;
        }
        if(inputIntIn[i] == 1){
            inputIntIn[i] = 0;
        }
    }
    return inputIntIn;



}

在main方法中,它不允许我将inputInt1分配给converTwosComp的返回值。

2 个答案:

答案 0 :(得分:1)

这是您可能需要的:

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

int main(void){
    char array1[] = "Michi";
    size_t len = strlen(array1);
    char *array2 = malloc(len+1);

    memcpy(array2, array1, len+1);

    printf("Array2 = %s\n",array2);
    free(array2);
    return 0;
}

输出:

  

Array2 = Michi

答案 1 :(得分:1)

如果您不想使用memcpy,可以随时使用for循环复制字符串。

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

int main(void)
{
    char one[30];
    char two[30];
    while(fgets(one,sizeof(one),stdin))
    {
        int len = strlen(one);
        for(int i = 0; i < (len + 1); i++)
        {
            two[i] = one[i];
        }
        printf("%s", two);
        break;
    }
    return EXIT_SUCCESS;
}