【发布时间】:2016-04-09 14:59:48
【问题描述】:
以下代码在两个字符串中查找公共字符,并返回一个指向公共字符串的指针(如果有)。我正在尝试在不使用任何内置函数或下标的情况下模拟函数 strpbrk。
#include <stdio.h>
#include <stdlib.h>
char *find_char( char const *source, char const *chars ){
char* str1;
char* str2;
if (source == NULL || chars == NULL)
return NULL;
else {
for( *str1=&source != '\0'; ++str1;){
for( *str2=&chars != '\0'; ++str2;){
if (*str1 == *str2)
return str1;
else return NULL;}
}
}
}
char* main(){
char const *source = "ab";
char const *chars = "bc";
find_char(source, chars);
}
但我收到以下错误
运行“/home/ubuntu/workspace/hello-c-world.c”
bash:第 12 行:29755 分段错误“$file.o”$args
进程退出,代码:139
我是 C 的初学者,正在学习如何操作指针,请告诉我我做错了什么以及如何加强我的 C 编程技能,现在我主要使用 Kenneth Reek 的书“C 上的指针”
谢谢
【问题讨论】:
-
我无法将 const char* 分配给 char *