0

我想编写一个使用命令行参数的程序并将其传递给 c 字符串数组,并将第一个位置分配给一个指针以及最后一个位置,并使用这些指针交换反转字符串,但我得到了错误。

#include <iostream>
#include <cstring>
#include <stdio.h>

using namespace std;

void revString(char const tempString,int length);
char *strcpy(char* s, char* t);   

int main(int argc,char const *argv[])
{
    if (argc!=2)
    {
        cerr<<"Usage: "<<argv[0]<<" String\n";
        return 1;
    }

    char tempString[100];
    strcpy(tempString, argv[1]);

    int length = strlen(argv[1]); 

    revString(tempString,length);  

    return 0; 
}


void revString(char const tempString,int length)    
{   
    char *arrFront;
    char *arrRear;
    int i = 0, r = 0;
    while(*(arrFront+length)!='\0')
        length++;
    for(i=length-1; i>=0; i--)
    {
        *(arrRear+r) = *(arrFront+i);
        r++;
    }
    *(arrRear+r) = '\0';  
}
4

1 回答 1

0

在函数revString中,tempString不应该是char const,它的原型应该是:

void revString(const char* tempString,int length)
//             ^^^^^^^^^^^

而且您不需要添加声明,strcpy因为它已经在标题中<cstring>

于 2013-10-20T05:09:04.217 回答