求教编写一个C语言函数求出两个字符串包含的相同的单词 如何用C语言编写一个程序,统计输入字符串的相同单词个数 ?

c\u8bed\u8a00\u7edf\u8ba1\u4e24\u4e2a\u5b57\u7b26\u4e32\u4e2d\u76f8\u540c\u7684\u5355\u8bcd\u7684\u6570\u91cf


\u5982\u56fe\uff0c\u53ea\u6709\u4e00\u4e2a\u76f8\u540c\u5355\u8bcd

\u5f88\u7b80\u5355\u4e86\uff0c\u4ee3\u7801\u5982\u4e0b\uff1a#include <stdio.hvoid main(){char a[100];int i,count=0,flag=1,n=0;gets(a);//\u4ece\u952e\u76d8\u8f93\u5165\u5b57\u7b26\u4e32for(i=0;a[i];i++){if((a[i]='a' && a[i]<='z') || (a[i]='A' && a[i]<='Z'))//\u5224\u65ad\u662f\u4e0d\u662f\u5b57\u7b26{flag=0;//\u8bbe\u7f6e\u5b57\u7b26\u6807\u5fd7continue;//\u8fd4\u56de\u4e0b\u4e00\u4e2a\u5faa\u73af}if(!flag)//\u524d\u9762\u4e00\u4f4d\u662f\u5b57\u7b26\uff0c\u5373\u5f53\u524d\u662f\u67d0\u4e2a\u5355\u8bcd\u5b57\u7b26\u7ed3\u675f{count++;//\u7edf\u8ba1\u5355\u8bcd\u4e2a\u6570flag=1;//\u8bbe\u7f6e\u975e\u5b57\u7b26\u6807\u5fd7}}i--;if((a[i]='a' && a[i]<='z') || (a[i]='A' && a[i]<='Z'))count++;//\u589e\u52a0\u5b57\u7b26\u4e32\u7ed3\u675f\u7684\u5355\u8bcd

#include <stdio.h>
char *maxword(char*s, char*t)
{
int wordlen=0,maxlen = 0;
char *pt = t, *ps = s, *res = s;
while (*s != '\0')
{
while (*s == ' ')s++;
ps = s;
while (*s != ' '&&*s != '\0')//找到一个单词
s++;
wordlen = s - ps;//获取单词长度
while (*pt != '\0')//在t中找到s中当前单词相同的首字母
{
while (*pt == ' ')pt++;


if (*ps == *pt)
{

//找到首字母
s = ps;
while (*pt == *s&&*s != ' '&&*s!='\0')//找t中与当前单词相同的单词
{
s++; pt++;
}
if (*s != ' '&&*s != '\0') //没有找到对应的单词,t中不是一个完整的单词也不算找到,s长了 
continue;

else if (*pt != ' '&&*pt != '\0')
{
while (*pt != ' ')pt++;
continue;//跳转找t的下一个单词的首字母
}

else if (wordlen > maxlen)//找到对应的单词了,与之前找到的单词对比长度,大于则记录,小于则过;
{
res = ps;
maxlen = wordlen;
pt = t;
break;
}
else
pt = t;
break;

}

while (*pt != ' '&&*pt!='\0')
pt++;

}

continue;
}
if (maxlen == 0)
return 0;
else
{
res[maxlen] = '\0';
return res;
}

}

int main()

char s[] = "text This is C Programmingg";
char t[] = "This is a Programmin text for C Programming ";
char *word = maxword(s, t);
printf("%s", word);
getchar();
    return 0;
}


  因为你的p,q两个指针数组的成员都没有申请内存,却在下面进行了访问(如p[m][j]=0; q[n][k]=0;)

  修正方式,给p,q成员申请内存,将char *p[81],*q[81];语句修改为如下:

        

     #define MAX_SIZE 81
     #define BUF_SIZE 64
     char *p[MAX_SIZE],*q[MAX_SIZE];
     int temp = 0;
     for (temp = 0; temp < MAX_SIZE; ++temp)
     {
      p[temp] = malloc(BUF_SIZE);
      q[temp] = malloc(BUF_SIZE);
     }
    函数末尾记得进行遍历释放它们成员的堆内存。


#include<stdio.h>
#include<string.h>
void maxword(char *s,char *t)
{
int i,j=0,m=0;
char p[20][30]= {0};
for(i=0; s[i]!='\0'; i++)
{
if(s[i]!=' ')
p[m][j++]=s[i];
else
{ p[m][j]='\0';
m++;
j=0;
}}
for(i=0; i<m; i++) {
if(strstr(t,p[i])!=NULL) {
printf("the same word:%s\n",p[i]);
}}}
void main()
{
char s[]="This is C programming text ";
char t[]="This is a text for C programming";
maxword(s,t);
}
这个我运行出来是对的 你那个好像strstr函数参数用反了

  • 姹傛暀缂栧啓涓涓狢璇█鍑芥暟姹傚嚭涓や釜瀛楃涓插寘鍚殑鐩稿悓鐨勫崟璇
    绛旓細include <stdio.h>char *maxword(char*s, char*t){int wordlen=0,maxlen = 0;char *pt = t, *ps = s, *res = s;while (*s != '\0'){while (*s == ' ')s++;ps = s;while (*s != ' '&&*s != '\0')//鎵惧埌涓涓崟璇峴++;wordlen = s - ps;//鑾峰彇鍗曡瘝闀垮害whi...
  • c璇█缂栫▼鍒╃敤鑷畾涔鍑芥暟姹備袱涓鏁扮殑鍜,宸?
    绛旓細// 鑷畾涔鍑芥暟锛岀敤浜姹備袱鏁颁箣宸 int difference(int a, int b) { return a - b;} int main() { int num1, num2;// 浠庣敤鎴烽偅閲岃幏鍙涓や釜鏁 printf("璇疯緭鍏ョ涓涓暟: ");scanf("%d", &num1);printf("璇疯緭鍏ョ浜屼釜鏁: ");scanf("%d", &num2);// 璋冪敤鑷畾涔夊嚱鏁板苟鎵撳嵃缁撴灉 p...
  • c璇█缂栧啓涓涓嚱鏁,姹備袱鏁颁腑鐨勬渶灏忔暟銆傚湪涓诲嚱鏁颁腑杈撳叆涓や釜鏁,璋冪敤鍑...
    绛旓細printf("鏈灏忔暟鏄細%d\n", m); //杈撳嚭鏈灏忔暟 double s = sqrt(m); //璋冪敤sqrt鍑芥暟锛岃绠楁渶灏忔暟鐨勫钩鏂规牴锛屽苟璧嬪肩粰s printf("鏈灏忔暟鐨勫钩鏂规牴鏄細%f\n", s); //杈撳嚭骞虫柟鏍 return 0;}
  • C璇█:缂栧啓涓涓嚱鏁,姹備袱涓鏁存暟鐨勫拰涓庝箻绉
    绛旓細void add_mul(int x,int y,int *sum,int *product){ sum=x+y;produnct=x*y;}
  • c璇█鍩虹缂栧啓涓涓嚱鏁fMaxMin( ),姹傚嚭浠绘剰缁欏畾鐨涓や釜鏁存暟鐨勬渶澶у叕绾...
    绛旓細include<stdio.h>int fMaxMin(int a,int b,int *c){int r; *c=a*b; while(r=a%b) {a=b; b=r; } *c/=b; return a;}int main(){int a,b,c; scanf("%d%d",&a,&b); printf("鏈澶у叕鍥犳暟=%d\n",fMaxMin(a,b,&c)); printf("鏈灏忓叕鍊嶆暟=%d\n",c); return...
  • c璇█缂栫▼鍒╃敤鑷畾涔鍑芥暟姹備袱涓鏁扮殑鍜
    绛旓細c璇█缂栫▼鍒╃敤鑷畾涔鍑芥暟姹備袱涓鏁扮殑鍜岀殑鏂规硶濡備笅锛氶鍏堥渶瑕佸畾涔変竴涓嚜瀹氫箟鍑芥暟锛屽懡鍚嶄负sum锛屽弬鏁颁负涓や釜鏁存暟a鍜宐锛岃繑鍥炲间负鏁存暟绫诲瀷銆傚湪鑷畾涔夊嚱鏁颁腑锛屼娇鐢╮eturn璇彞杩斿洖a鍜宐鐨勭浉鍔犵粨鏋溿傚湪涓诲嚱鏁颁腑锛屽畾涔変袱涓暣鏁板彉閲弜鍜寉锛屼娇鐢╯canf()鍑芥暟浠庨敭鐩樿緭鍏ュ畠浠殑鍊笺傚湪涓诲嚱鏁颁腑锛岃皟鐢╯um(x,y)鍑芥暟锛屽苟灏...
  • C璇█缂栧啓涓涓鑷富鍑芥暟,瀹炵幇杈撳叆涓や釜鏁,閫氳繃璋冪敤A鍜孊缂栧啓鐨勫嚱鏁,姹傚嚭涓...
    绛旓細鍙傝冧唬鐮佸涓:include<stdio.h> double add(double x, double y){ return x+y;} double sub(double x, double y){ return x-y;} int main(){ double a,b;scanf("%lf%lf",&a,&b);printf("%.2lf\n",add(a,b));printf("%.2lf\n",sub(a,b));return 0;} ...
  • 姹C璇█瀹氫箟涓涓嚱鏁版眰涓や釜鏁扮殑鍜,鍦ㄤ富鍑芥暟涓皟鐢
    绛旓細include<stdio.h> float add(float a,float b){ return a+b;} int main(){ float add(float a,float b);float num1,num2;printf("璇疯緭鍏涓や釜鏁帮細");scanf("%f %f",&num1,&num2);printf("涓ゆ暟鐨勫拰鏄細%f\n",add(num1,num2));return 0;} ...
  • c璇█鍐欎竴涓嚱鏁,姹備袱涓鏁扮殑鏈澶у叕绾︽暟
    绛旓細include<stdio.h> int gcd(int a,int b){ return b==0?a:gcd(b,a%b);} int main(){ int a,b;while((scanf("%d%d",&a,&b))!=EOF){ if(a==0||b==0){ printf("Error\n");continue;} printf("%d鍜%d鐨勬渶澶у叕绾︽暟涓%d\n",a,b,gcd(a,b));} return 0;} ...
  • C璇█涓浣曡緭鍑涓や釜鍙橀噺鐨勫?
    绛旓細C璇█涓緭鍑涓や釜鍙橀噺鐨勬柟娉曞涓嬶細1.棣栧厛闇瑕佸厛瀹氫箟涓や釜鍙橀噺銆傝繖閲屾紨绀轰互瀹氫箟涓や釜鏁村舰鍙橀噺A锛孊涓轰緥銆2.瀹氫箟瀹屾垚鍚庯紝闇瑕佷负A锛孊璧嬪硷紝杩欐牱鎵嶈兘鍦ㄥ悗闈㈢殑杈撳嚭璇彞涓杈撳嚭鍒板睆骞曟樉绀鍑烘潵銆3.鏈鍚庡氨鍙互浣跨敤printf璇彞鏉ヨ緭鍑哄彉閲忎簡锛屼互杈撳嚭A锛孊鍙橀噺涓轰緥锛屾牸寮忎负pirntf("%d %d",A,B);鍏朵腑涓涓%d浠h〃涓...
  • 扩展阅读:c++编程 ... 求的近似值c语言 ... c语言如何调用函数 ... c语言如何编程名字 ... c语言编程自己的名字 ... c语言计算表达式题库 ... 求根公式的c语言程序 ... 求根公式python编程 ... c语言函数声明一般怎么写 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网