1.将一个句子中的各个单词倒置,形成一个新的字符串,如:
"I am a student"转换成"student a am I"
2.记录字符串1中所有出现字符串2的位置,如
"simple word a word two word"中"word"的出现的各个位置为
8 15 24
哪位能给我此两个小程序的源码,帮我用c的字符指针实现,着急使用,有个解决的思路也可以,非常感谢!!!
方便可以给我在此回复,或者发到我的邮箱里,
watercrystal@
例如输入 I am a studen 程序输出 student a am I #include<stdio.h> #include<string.h>
void main(){ int i,j=0,z,d,q,k; char b[100],a[]="I am a student"; z=strlen(a)-1; q=z; i=z; while(i>=0){ if(a[i]==' '||i==0) { if(i>0) {d=i+1; for(;d<=q;d++) b[j++]=a[d]; b[j++]=' '; q=i-1; } else{ k=i; for(;k<=q;k++) b[j++]=a[k]; } } i--; } b[z+1]='\0'; printf("%s\n",b); }
一句话。上机运行去。就知道什么叫 热情依然
第二个程序也做了下 自己感觉不太好 大家看看有什么地方可以改不 #include <stdio.h> void finds (char *s,char *w,int l) { char *ww=w; while (*s) { if ( *s == *w ) { while ( *w ) { if ( *s != *w ) break; s ++; w ++; } } if ( !*w ) { w = ww; printf ( " %d ",l - strlen( s ) - strlen( w ) + 1 ); } s ++; } }
main() { char sentence [ 255 ] = "simple word a word two word" ; char words [ 255 ] = "word" ; finds ( sentence ,words ,strlen( sentence ) ); }