程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> c語言-C語言的比較基礎的問題

c語言-C語言的比較基礎的問題

編輯:編程解疑
C語言的比較基礎的問題

是要判斷兩個字符串是否由相同字母組成,大小寫不論,字符串中的—也不考慮,例如garden ranged
earth heart
veil evil
Roll_in_the_hay Thrill_a_honey都是正確的
代碼如下
#include
#include
char* var(char a[])
{
int i, j = 0;
char b = new char[100];
for(i = 0; i < 100; i++)
{
if(a[i] != '_')
{
b[j] = a[i];
j++;
}
else if(a[i] == '\0')
break;
}
b[j] = '\0';
return b;
}
int judge1(char var1[], char var2[]) //判斷是否完全相同
{
unsigned int j;
for(j = 0; j < 26; j++)
{
if(var1[j] != var2[j]) break;
}
if(j == 25) return 0;
else return 1;
}
char
judge2(char var[]) //計算詞頻
{
char *b = new char[26];
unsigned int i, j, l, k = 65;
for(i = 0; i < 26; i++)
{
l = 0;
for(j = 0; j < strlen(var); i++)
{
if((unsigned int)var[j] == k || (unsigned int)var[j] == k + 32) l++;
}
b[i] = l;
k++;
}
return b;
}
int main()
{
char p1[100];
char p2[100];
scanf("%s%s", p1, p2);
while(getchar() != '\n');
if(judge1(judge2(var(p1)), judge2(var(p2))) == 1) printf("Yes\n");
else printf("No\n");
return 0;
}
現在運行時輸入後就卡住不動了,求教大神就是輸入比如DOCTOR_WHO TORCHWOOD然後,就沒有然後了
小白,沒有金幣,555555

最佳回答:


var函數裡for循環會進行100次,此時i已經是100了
再執行b[j] = '\0';已經造成越界了
單步調試和設斷點調試(VS IDE中編譯連接通過以後,按F10或F11鍵單步執行,按Shift+F11退出當前函數;在某行按F9設斷點後按F5執行停在該斷點處。)是程序員必須掌握的技能之一。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved