:删除所有值为y的元素。数组元素中的值和y的值由主函数通过健盘读入。
为什么会有两个警告~要怎样改才算正确~请指点~
----------------解决方案--------------------------------------------------------
strcmp() 比较2个字符串 y 是字符。
----------------解决方案--------------------------------------------------------
char *strchr(const char * s, int c);
该函数返回一个指向字符串s中存放字符c的第一个位置的指针(标志结
束的空字符是字符串的一部分,因此也可以搜索到它)。如果没有找到该字
符,函数就返回空指针。
fun() 的实现也不对
[此贴子已经被作者于2007-11-20 17:20:12编辑过]
----------------解决方案--------------------------------------------------------
呵呵,又是这位大哥~今天你帮我很多忙了,都有点不好意思了~cosdos
----------------解决方案--------------------------------------------------------
先吃饭去,等下再说
7 楼
[此贴子已经被作者于2007-11-20 17:49:09编辑过]
----------------解决方案--------------------------------------------------------
正常了,原来字符不能当作字符串一样处理~谢谢~
----------------解决方案--------------------------------------------------------
/* 我是这样实现的 v 2.0 */
#include <stdio.h>
#include <string.h>
void fun(char * m, char y)
{
int i, j;
for(i = 0; m[i]; i++)
if(m[i] == y)
{
j = i+1;
while(m[j] == y)
j++;
strcpy(&m[i], &m[j]);
}
}
void fun(char * m, char y) /* v 2.1 */
{
int i, j, k;
for(i = 0; m[i]; i++)
if(m[i] == y)
{
j = i+1;
while(m[j] == y)
j++;
k = i;
do /* 使用循环把后续字符覆盖在 m[i] == y 位置 */
{
m[k] = m[j++];
}while(m[k++]);
}
}
/*
如果是 m[i] == y ,
那么将后面的字符拷贝到 m[i] 的位置,
从而覆盖原来的 m[i] (m[i] == y) 。
*/
[此贴子已经被作者于2007-11-20 18:53:54编辑过]
----------------解决方案--------------------------------------------------------
正常了,原来字符不能当作字符串一样处理~谢谢~
字符串:
char name[7] = "cosdos";
字符:
char ch = 'c';
name 是字符数组的首地址。
ch 是一个值
一个是地址,一个是值,当然不能一样处理。
strcmp(name, ch); 把 ch 也当成地址(ch 这个地址是无效的)
-
-
[此贴子已经被作者于2007-11-20 18:17:58编辑过]
----------------解决方案--------------------------------------------------------
不好意思,
那时候比较赶时间,一时没看清楚
[此贴子已经被作者于2007-11-20 21:37:34编辑过]
----------------解决方案--------------------------------------------------------
发现一个小错误,
红色的地方应该该为m[i] == 'y'
请仔细看。
void fun(char * m, char y)
{
}
----------------解决方案--------------------------------------------------------