使用字符串作为函数的参数
Using string as parameter for function
我正在尝试使用一个以字符串作为参数的函数。我 运行 收到几条错误消息。首先,它说 string[i] 不是数组、指针或向量,尽管 string 是字符数组。其次,它说我正在做一个指向整数转换的指针。这是我的代码:
#include <stdio.h>
#include <string.h>
void example (char string) {
int i;
for (i = 0; i < strlen(string); i++) {
printf (string[i]);
}
}
int main (void) {
example("I like pie");
return 0;
}
void example(char string)
应该是 void example(char *string)
。你声明它接受一个字符,你希望它接受一个字符指针或数组。
此外,您需要告诉 printf
您要给它一个字符:printf("%c", string[i]);
.
你的API错了应该是
void example (char *string) { // string is a pointer
int i;
size_t n = strlen(string);
for (i = 0; i < n; i++) {
printf ("%c",string[i]); // print character using %c
}
}
在循环之前计算字符串长度,在每次迭代中调用 strlen() 不是一个好主意。
PS: string
指向的是只读的你不能修改它
您应该使用 void example(char *string)
而不是 void example (char string)
。
#include <stdio.h>
#include <string.h>
void example (char *string) {
int i;
for (i = 0; i < strlen(string); i++) {
printf ("%c",string[i]);
}
printf("\n");
}
int main (void) {
example("I like pie");
return 0;
}
你的函数 example 只是接收一个字符。要获取字符串,您可以使用指针。您也可以在 printf 中使用“%s”格式说明符,而不是使用 for循环和strlen()函数。
#include <stdio.h>
#include <string.h>
void example (char *string) {
int i;
printf ("%s\n",string);
}
我正在尝试使用一个以字符串作为参数的函数。我 运行 收到几条错误消息。首先,它说 string[i] 不是数组、指针或向量,尽管 string 是字符数组。其次,它说我正在做一个指向整数转换的指针。这是我的代码:
#include <stdio.h>
#include <string.h>
void example (char string) {
int i;
for (i = 0; i < strlen(string); i++) {
printf (string[i]);
}
}
int main (void) {
example("I like pie");
return 0;
}
void example(char string)
应该是 void example(char *string)
。你声明它接受一个字符,你希望它接受一个字符指针或数组。
此外,您需要告诉 printf
您要给它一个字符:printf("%c", string[i]);
.
你的API错了应该是
void example (char *string) { // string is a pointer
int i;
size_t n = strlen(string);
for (i = 0; i < n; i++) {
printf ("%c",string[i]); // print character using %c
}
}
在循环之前计算字符串长度,在每次迭代中调用 strlen() 不是一个好主意。
PS: string
指向的是只读的你不能修改它
您应该使用 void example(char *string)
而不是 void example (char string)
。
#include <stdio.h>
#include <string.h>
void example (char *string) {
int i;
for (i = 0; i < strlen(string); i++) {
printf ("%c",string[i]);
}
printf("\n");
}
int main (void) {
example("I like pie");
return 0;
}
你的函数 example 只是接收一个字符。要获取字符串,您可以使用指针。您也可以在 printf 中使用“%s”格式说明符,而不是使用 for循环和strlen()函数。
#include <stdio.h>
#include <string.h>
void example (char *string) {
int i;
printf ("%s\n",string);
}