将命令行参数传递给c中的c字符串和指针

时间:2013-10-20 05:03:41

标签: c++ pointers arguments

我想编写一个使用命令行参数并将其传递给c字符串数组的程序,并将第一个位置分配给指针并指定最后位置,并使用这些指针交换反向字符串,但是我收到错误。< / p>

#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';  
}

1 个答案:

答案 0 :(得分:0)

在函数revString中,tempString不应为char const,其原型应为:

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

您无需添加strcpy的声明,因为它已经在标题<cstring>