字符串函数能用于指针吗
时间: 2023-10-22 08:03:33 浏览: 46
字符串函数通常是用于操作字符数组的,而在 C 语言中,字符串本质上就是一个字符数组,因此字符串函数可以被用于操作指向字符数组的指针。例如,如果有一个指向字符串的指针,可以使用字符串函数如 strlen、strcpy、strcat 等来操作它,如下所示:
```c
char* str = "hello";
char str2[10];
int len = strlen(str); // 获取字符串长度
strcpy(str2, str); // 复制字符串
strcat(str2, " world"); // 拼接字符串
```
在上面的示例中,`str` 是一个指向字符串常量的指针,而 `str2` 则是一个字符数组,我们使用了 `strlen`、`strcpy` 和 `strcat` 函数来操作这些字符串。需要注意的是,在使用字符串函数时,要确保目标字符数组足够大,以免发生越界访问的错误。
相关问题
回文字符串c语言用函数指针
以下是使用函数指针判断回文字符串的C语言代码示例:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char *str, int (*cmp)(const char *, const char *));
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
if (isPalindrome(str, strcmp)) {
printf("%s 是回文字符串\n", str);
} else {
printf("%s 不是回文字符串\n", str);
}
return 0;
}
int isPalindrome(char *str, int (*cmp)(const char *, const char *)) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
if (cmp(&str[i], &str[len - i - 1]) != 0) {
return 0;
}
}
return 1;
}
```
该程序中,isPalindrome函数使用了函数指针cmp,该指针指向了strcmp函数,用于比较两个字符是否相等。在主函数中,先输入一个字符串,然后调用isPalindrome函数进行判断,如果是回文字符串则输出“是回文字符串”,否则输出“不是回文字符串”。
求一个字符串的函数(指针)
这里是一个求字符串长度的函数指针:
```c
int (*str_len)(const char *);
```
它可以用于计算字符串的长度,如下所示:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello, world!";
int len = str_len(str);
printf("The length of \"%s\" is %d.\n", str, len);
return 0;
}
int str_len(const char *str) {
return strlen(str);
}
```