用最原始的方法
1.先把字串轉換成n行2維陣列,按照規律存入二維陣列
2.然後對二維陣列 遍歷,存到目標字串
3:注意素組越界訪問和邊界值的設定
這個方法比較笨。執行的效率不高
#define max_size 1000
char**
converttomatrix
(char
* s,
int numrows)
int len =
strlen
(s);
int numcols =
(len / numrows ==0)
?1:(numrows * len / numrows)
;for
(int i =
0; i < numrows; i++)}
int count =0;
for(
int col =
0; col < numcols; col++)}
else}}
}return strmatrix;
}char
*convert
(char
* s,
int numrows)
strmatrix =
converttomatrix
(s, numrows)
;for
(int i =
0; i < numrows; i++
)//printf_s("%c", strmatrix[i][j]);
}//printf_s("\n");
} res[count]
='\0'
;//convert matrix to string again.
return res;
}更加優化的演算法是找規律,找出字串下表的規律。
第一行比肩容易找 2n-
2但是對角線線上的值規律不一樣: 對角線上 為2n-
2= n-
iint len =
strlen
(s);
if(numrows <=1)
return s;
char
*t =
(char*)
malloc
(sizeof
(char)*
(len +1)
);int numsize =0;
int n =
2* numrows -2;
for(
int i =
0; i < numrows; i++)}
} t[numsize]
='\0'
;return t;
字串Z型輸出
這道題目是字串處理的題目。輸入乙個字串和乙個數字,將字串填入倒z形輸入字串,然後按照列讀取字元,得到乙個新的字元,輸出這個字元。例如 字串 paypalishiring 3pa hnap lsii gyir 得到的新字元是 pahnaplsiigyir 這題只是簡單的字串處理。首先,我們可以對z形字...
18 字串 char型字串
1 什麼是字串?字串是以空字元 0 結尾的字元陣列。空字元的assii碼為 0,空格的ascii碼為32 2 0的作用 0 是乙個空字元標誌,它的assii碼為0,c 有好多處理字串的函式,都以 0 為結束標記。也就是以空字元為結束標記,比如cin,cout。它們都以空字元為結束標記,他們在遇到空字...
6 字串函式
strcpy函式char strcpy char dest,const char src 功能 把src所指向的字串覆蓋複製到dest。返回值 dest指向的字串。注意 字串src的長度不能超過dest,否則會溢位。strncpy函式char strncpy char dest,const char...