strpos函数原型
char *strpos(char *substr, const char *src) ;
如“123123S454”中,要你找出“123S”的位置 .
顺便问下
一个是数组A={‘a’,‘b’},字符串B=“ab” ,长度是不是A>B?
问题点数:50、回复次数:16Top
1 楼goodluckyxl(被人遗忘的狗)回复于 2006-03-09 14:46:40 得分 10
一个是数组A={‘a’,‘b’},字符串B=“ab” ,长度是不是A>B?
//A中第三个字节如果不是'\0'那显然要比B长
//如果是那么一样长Top
2 楼zzjb(C就一个字,我只说一次)回复于 2006-03-09 15:11:58 得分 0
那怎么样才能知道A中第三个字节是不是'\0'呢?
还有
为什么
A中第三个字节如果不是'\0'的话,A比B长
如果是那么一样长
呢?
A中第三个字节如果不是'\0'的话,A和B不就是一样的吗?Top
3 楼goodluckyxl(被人遗忘的狗)回复于 2006-03-09 15:14:31 得分 0
//只有strstr 看MSDN的example
/* STRSTR.C */
#include <string.h>
#include <stdio.h>
char str[] = "lazy";
char string[] = "The quick brown dog jumps over the lazy fox";
char fmt1[] = " 1 2 3 4 5";
char fmt2[] = "12345678901234567890123456789012345678901234567890";
void main( void )
{
char *pdest;
int result;
printf( "String to be searched:\n\t%s\n", string );
printf( "\t%s\n\t%s\n\n", fmt1, fmt2 );
pdest = strstr( string, str );
result = pdest - string + 1;
if( pdest != NULL )
printf( "%s found at position %d\n\n", str, result );
else
printf( "%s not found\n", str );
}
Output
String to be searched:
The quick brown dog jumps over the lazy fox
1 2 3 4 5
12345678901234567890123456789012345678901234567890
lazy found at position 36
Top
4 楼dragonzxh(河马MiaMia~柯奶奶和黑爷爷的儿子叫柯南...~)回复于 2006-03-09 15:15:06 得分 5
长度,看怎么定义长度....strlen还是sizeof....
那个找位置的....看KMP算法吧.有很多很多算法....好像KMP比较能接受.
不然的话就一个一个从头比较....Top
5 楼goodluckyxl(被人遗忘的狗)回复于 2006-03-09 15:25:43 得分 5
关于是不是一样 我看的有点问题
我以为是直接往里赋值
其实你这样 A={‘a’,‘b’},字符串B=“ab” 的写法
是两种初始化方式
按照这样的初始化方式
可以得出 这样结果
A[]={‘a’,‘b’} 或者 A[2]={‘a’,‘b’}两种定义方式
与B="ab"或者B[]="ab";的表达的长度不一样
A[X]={‘a’,‘b’} X>=3时与B的长度就一样了Top
6 楼zzjb(C就一个字,我只说一次)回复于 2006-03-09 16:02:14 得分 0
再问一下
如果A[]={‘a’,‘b’} ,B="ab",这样A和B的长度就一样了?
不用考虑A中"\0"的问题?Top
7 楼goodluckyxl(被人遗忘的狗)回复于 2006-03-09 16:24:26 得分 5
A[]={‘a’,‘b’} 或者 A[2]={‘a’,‘b’}两种定义方式
与B="ab"或者B[]="ab";的表达的长度不一样
是不一样好不好Top
8 楼dragonzxh(河马MiaMia~柯奶奶和黑爷爷的儿子叫柯南...~)回复于 2006-03-09 16:31:50 得分 10
char A[2]={'A','B'};
char B[2]={"AB"};
明显不一样嘛~""都是以\0结尾的.如果char B[2]={"AB"};编译器会报错的啊~array bounds overflowTop
9 楼goodluckyxl(被人遗忘的狗)回复于 2006-03-09 16:37:25 得分 5
仔细看清楚回复
我的天 尽碰到毛人Top
10 楼dragonzxh(河马MiaMia~柯奶奶和黑爷爷的儿子叫柯南...~)回复于 2006-03-09 16:39:58 得分 0
死ed狗.bs之~
他问的不是{'A','A'}和{"AA"}长度问题嘛.Top
11 楼goodluckyxl(被人遗忘的狗)回复于 2006-03-09 16:44:02 得分 0
char B[2]={"AB"};
这种错误代码居然拿出来做样本
应该将河马拖出去 封杀之 :PTop
12 楼dragonzxh(河马MiaMia~柯奶奶和黑爷爷的儿子叫柯南...~)回复于 2006-03-09 16:49:29 得分 0
......错误样本嘛.偶说了是错误样本嘛~....Top
13 楼zzjb(C就一个字,我只说一次)回复于 2006-03-09 17:24:08 得分 0
A[X]={‘a’,‘b’} X>=3时与B的长度就一样了
为什么X>3时,A[X]={‘a’,‘b’}与B="ab"的一样呢?Top
14 楼goodluckyxl(被人遗忘的狗)回复于 2006-03-09 17:39:19 得分 10
A[X]={‘a’,‘b’} X>=3时
初始化工作就是A[0]='a', A[1]='b',A[...] = 0也就是'\0'
不管X申请了多空间字符有效就只有2
strlen(A)==2;和 B是一样的
如果 X <2那是错误的空间不够益处了
如果 X==2那么 A[0]='a',A[1]='b',不存在A[2]...
此刻A[2]往后数据对于A来说是非法的
strlen以'\0'就不知道会到哪里截止了 所以结果就不一样
Top
15 楼bbbbcccc()回复于 2006-03-10 17:23:45 得分 0
http://valenhua.go3.icpcn.com/Top
16 楼wangmuqq88(挥着翅膀的尼姑)回复于 2006-03-12 00:45:48 得分 0
欢迎加群20641933,欢迎大家共同交流.提高!(不怕不会,就怕不学.)Top




