#include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc,char *argv[]){ int fir; //badly named loop variable char *input[] = calloc( strlen(argv),sizeof(char)); //initializing an array for( fir = 1; fir< strlen(argv); fir++){ //removing the first element of argv strcat(input,argv[fir]); // appending to input }
我得到的错误是第6行.它表示“strlen”的参数1从不兼容的指针类型传递,我得到与strcat函数相同的错误.
它还说给定一个char **,但是预期这两个函数都有一个const char *.我试图填充一个新数组,其中包含所有argv的元素,除了第一个.我试过argv =& argv [1],它没有工作.
strlen()和strcat()函数没有使用char数组吗?
解决方法
int main(int argc,char *argv[])
argv是一个指向char(即字符串数组)的数组.该数组的长度存储在argc参数中.
strlen用于检索必须为空终止的单个字符串的长度,否则行为未定义.