我在不使用 strlen 的情况下从命令行打印字符串的长度时遇到问题?
I have an issue printing the length of a string from the command line without using strlen?
你好,基本上我的程序的目的是当用户从命令行输入一个字符串时,它会打印出单词和大小。
例如
./commandline hello world
输出:
你好
世界
2
我想要做的是添加一个方法,该方法将在不使用 strlen
的情况下打印其长度,因此对于上面的示例,输出的长度应为 10。
这是我的代码,我是 c 的新手。
int main(int args, char *argv[]){
for(int i =1; i <args; i++){
printf("%s\n", argv[i]);
size_t(argv[i]);
}
printf("%d\n", args -1);
}
size_t string_length( char *argv[]){
int length = 0;
while(argv[length]!='[=11=]')
{
length++;
printf("%i\n", length);
}
return 0;
}
我的程序不打印长度,只打印输入的字符串和大小。
for(int i =1; i <args; i++){
printf("%s\n", argv[i]);
size_t(argv[i]);
}
printf("%d\n", args -1);
在这里你没有在任何地方调用你的函数。你的程序只是打印参数和它们的数量。 size_t(argv[i]);
仅将 argv[i]
转换为名为 size_t
的 类型 。当然,这不是你想要的。将其替换为 string_length(argv[i]);
。请注意,您最好更改此函数的第一个参数的类型。
此外,您应该 return length
在您的 string_length
函数中。
size_t string_length( char *arg){
size_t length = 0;
while(arg[length])
{
length++;
}
return length;
}
试试这个
size_t string_length( char *argv[]);
int main(int args, char *argv[]){
for(int i =1; i <args; i++){
printf("%s\n", argv[i]);
string_length(argv[i]);
}
printf("%d\n", args -1);
}
size_t string_length( char *argv[]){
int length = 0;
while(argv[length]!='[=10=]')
{
length++;
}
printf("%i\n", length);
return length;
}
你好,基本上我的程序的目的是当用户从命令行输入一个字符串时,它会打印出单词和大小。
例如
./commandline hello world
输出:
你好
世界
2
我想要做的是添加一个方法,该方法将在不使用 strlen
的情况下打印其长度,因此对于上面的示例,输出的长度应为 10。
这是我的代码,我是 c 的新手。
int main(int args, char *argv[]){
for(int i =1; i <args; i++){
printf("%s\n", argv[i]);
size_t(argv[i]);
}
printf("%d\n", args -1);
}
size_t string_length( char *argv[]){
int length = 0;
while(argv[length]!='[=11=]')
{
length++;
printf("%i\n", length);
}
return 0;
}
我的程序不打印长度,只打印输入的字符串和大小。
for(int i =1; i <args; i++){
printf("%s\n", argv[i]);
size_t(argv[i]);
}
printf("%d\n", args -1);
在这里你没有在任何地方调用你的函数。你的程序只是打印参数和它们的数量。 size_t(argv[i]);
仅将 argv[i]
转换为名为 size_t
的 类型 。当然,这不是你想要的。将其替换为 string_length(argv[i]);
。请注意,您最好更改此函数的第一个参数的类型。
此外,您应该 return length
在您的 string_length
函数中。
size_t string_length( char *arg){
size_t length = 0;
while(arg[length])
{
length++;
}
return length;
}
试试这个
size_t string_length( char *argv[]);
int main(int args, char *argv[]){
for(int i =1; i <args; i++){
printf("%s\n", argv[i]);
string_length(argv[i]);
}
printf("%d\n", args -1);
}
size_t string_length( char *argv[]){
int length = 0;
while(argv[length]!='[=10=]')
{
length++;
}
printf("%i\n", length);
return length;
}