-
#include
using namespace std;
void fun ( char *s )}測試程式如下:
int main()
附錄:你的程式不是語法問題,而是混沌的演算法邏輯,根本無法改變!
-
1.不同的語言有不同的字串處理方式,需要相關知識。
2. 在 VB6 中,您可以使用 strreverse() 函式來簡單地實現它。
3. VB6 示例:
private sub command1_click()dim s1 as string, s2 as strings1 = "abcdef"
s2 = strreverse(s1)
msgbox s1 & vbnewline & s2end sub
-
將 S 中的字元傳遞給 T 似乎存在問題。
-
j=k=strlen(xx[i])-1;j,k,初始值,位於一行字元的最右端。
while(isalpha(xx[i][j])==0&&j>=0) k=--j;
如果 xx[i][j] 不是字母,並且 j >= 0,則迴圈執行 j=j-1; k = j;
直到遇到這封信。
字母迴圈完成後,k 的位置是最右邊的第乙個字母。
while(isalpha(xx[i][j])&j>=0) j--;
如果是字母,請繼續向左看,j > = 0
然後迴圈做 j=j-1
直到遇到非字母。 j 是後減法,退出迴圈,指向單詞前的空格。
memcpy(t1,&xx[i][j+1],k-j);
J 指向空白,J+1 指向第乙個字母,K-J 是字母數。
這句話執行 xx[i] 行從 J+1 到 K 的複製,總共 K-J 字元到 T1。
t1[k-j]='\0';t1 在字串標誌的末尾。
strcat(t,t1);將 t1 新增到產品儲存單元的末尾。
strcat(t," ");T 尾加上 1 個空白,為掉落乙個單詞做準備。
j>=0 繼續做乙個大迴圈,這次是上一次向左拾取單詞。
這樣,我們從最後乙個單詞中找到第乙個單詞,並在結果 t 中新增乙個。
if(j<0) break;所有字元都已找到,並且退出了 while(1) 的迴圈。
-
1. isalpha 是乙個檢查字元是否為字母的函式。 是返回 1。
2、j=k=strlen(xx[i])-1;最初,j 和 k 都位於字串最後乙個字元的下標位置。
0)k=--j;
當 xx[i][j] 是字母時,此步驟結束,即第一次遇到乙個單詞的字母,位於 k 的位置,指向乙個單詞的最後乙個字母。
4、while(isalpha(xx[i][j])&j>=0)j--;
當 xx[i][j] 不是字元時,這個迴圈結束,即乙個單詞完成,並且 j 位於指向單詞第乙個字母之前的位置。
此步驟將複製字串。 從 xx[i][j+1] 開始,即單詞的第乙個字母,將 k-j 字母(即整個單詞)複製到 t1。
6、t1[k-j]='\0';
每個字串都以“0”結尾,此步驟設定字串的結束標誌。
7、strcat(t,t1);
在此步驟中,複製到 t1 中的單詞將複製到儲存結果的位置 t。
8、strcat(t," ");
在 t 中新增另乙個空格以分隔單詞。
9、if(j<0)break;
如果 j<0,則表示整個字串已被遍歷,您可以退出迴圈並轉置下乙個字串。
-
簡單,翻譯過來,就是這樣:
void strol(void) *標準答案* for(l=0; l='a'&&xx[l][i]<='z')||xx[l][i]>='a'&&xx[l][i]<='z'))&i>=0)
strcat(ch,pp);strcpy(pp, """");k=1;
if(i==1)break;
while((xx[l][i]<'a'||xx[l][i]>'z')&&i>=0)
strcat(ch,pp); strcpy(pp,"""");
k=0;if(i==1)break;}
strcpy(xx[l],ch);}
-
對反向函式進行以下更改:
char *reverse(char *str3)return str3;
原始程式問題:
1. while迴圈條件不正確,因為分別從開頭和結尾遍歷字串是兩個指標,所以不應該是str2!='\0'
2.交換方法錯誤,*str2=*str1,如果只有這個,字串頭的原始內容會被字串頭的內容替換,尾部的內容不會被字串頭的內容替換。
-
有人問,沈立,你去寬蓋看看答案合適不合適。
-
for(int i=0;i “宴會領導 Len; 我++)這個迴圈中 len 的長度已經是 -1,並且迴圈沒有執行,所以應該在其中新增乙個句子 len=strlen(src);
使用字串就是使用它的第乙個位址(有時和長度,實際上,擁有第乙個位址就足夠了),無論字串有多長。 最明顯的例子是,當乙個(常量)字串作為引數及其第乙個位址傳遞時。 所以你的比較只是位址的比較。