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

pass Command-line argument to c string and pointer in c

本文关键字:字符串 指针 中的 参数传递 命令行      更新时间:2023-10-16

我想编写一个使用命令行参数的程序并将其传递给 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]<<" Stringn";
        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)!='')
        length++;
    for(i=length-1; i>=0; i--)
    {
        *(arrRear+r) = *(arrFront+i);
        r++;
    }
    *(arrRear+r) = '';  
}

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

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

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