黑马程序员技术交流社区
标题: 一个关于C语言中字符串的问题 [打印本页]
作者: lj61785636 时间: 2015-5-19 11:25
标题: 一个关于C语言中字符串的问题
/*
编写一个函数char_contains(char str[],char c),
如果字符串str中包含字符c则返回数值1,否则返回数值0
*/
#include <stdio.h>
#include <string.h>
int char_contains(char str[],char c)
{
for (int i = 0; i < size; i++) { // 第一行
if (str == c) {
return 1;
}
}
return 0;
}
int main()
{
char name[] = "liangjian";
int size = strlen(name); //第二行
int rusult = char_contains(name,'u');
printf("%d\n",rusult);
return 0;
}
题目已经写好了,讲义中的一道题
我这样写无法编译,报错说我的size未定义,可是我再这里不是定义的全局变量size在for中调用吗
怎么会存在未定义问题呢
作者: mars_b0ZZ0 时间: 2015-5-19 11:25
size 不是全局变量,是局部变量,char_contains(char str[],char c)函数是无法直接引用的,除非将值传过去。第二个程序,将字符串传递过去,再从字符串中获得size,希望对你有帮助:)
作者: lj61785636 时间: 2015-5-19 11:29
下面把经过修改后正确的发一下
/*
编写一个函数char_contains(char str[],char c),
如果字符串str中包含字符c则返回数值1,否则返回数值0
*/
#include <stdio.h>
#include <string.h>
int char_contains(char str[],char c)
{
for (int i = 0; i < strlen(str); i++) {
if (str[i] == c) {
return 1;
}
}
return 0;
}
int main()
{
char name[] = "liangjian";
int rusult = char_contains(name,'u');
printf("%d\n",rusult);
return 0;
}
作者: lj61785636 时间: 2015-5-19 13:09
作用域问题,已解决
作者: 笔墨痕干 时间: 2015-5-19 15:21
- #include <stdio.h>
- #include <string.h>
- int char_contains(char str[],char c,int size)
- {
- int i;
- for (i = 0; i < size; i++) { // 第一行
- if (str[i] == c) {
- return 1;
- }
- }
- return 0;
- }
- int main()
- {
- char name[] = "liangjian";
- int size = strlen(name); //第二行
- int rusult = char_contains(name,'u',size);
- printf("%d\n",rusult);
- return 0;
- }
复制代码
你的程序的size的作用范围不对,同时变量i的定义好像也不对把,你的定义方法是java的,在c语言中好像不能用吧!!具体我也不知道,反正我在vc中这样定义变量是不能通过的
作者: binglin 时间: 2015-5-19 20:07
#include <stdio.h>
#include <string.h>
int char_contains(char str[],char c)
{
int a=0;
for (int i = 0; i < sizeof(str); i++) {
if (str[i] == c) {
a=1;
}
}
return a;
}
int main()
{
char name[] = "liangjian";
int rusult = char_contains(name,'u');
printf("%d\n",rusult);
return 0;
}
作者: 白水丶 时间: 2015-5-19 21:13
楼主,这个代码错误好多啊,如果是c语言的话,不能在for循环中定义int类型,同时size也不是全局变量,这个程序的意思也不是要在字符串中找没有c字符,而是找传进去的字符参数
作者: 刘雨轩1314 时间: 2015-5-20 09:38
size是一个区域变量,你可以定义函数的时候用一个变量传值过去啊
作者: zhuchangbao 时间: 2015-5-20 11:49
请尽快选择最佳答案。
作者: 海洋你好 时间: 2015-5-26 20:06
size不是全局变量,如果在第1个函数中加一句int size=strlen(str);就应该是对的了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |