1樓:靠譜的星爺
這個原型宣告沒有問題,傳遞進去一個字串,起始字元的位置,以及擷取的長度。按照這個意思
來寫最後是沒有問題的。返回值為字元型指標可以在這個函式裡面宣告一個字元陣列,最後將這個
字元陣列返回。
#include "stdio.h"
#include "string.h"
main()
2樓:陳學陽
2維陣列在記憶體中仍是連續的儲存單元
你出現那樣的原因是因為 長度超出陣列2維長度
越界從而將前面的資料覆蓋而導致
畫了個示意圖如下
------
1 "this is 1" 串首地址
------
2------
......
------
10------
11 \0而這裡是存放this is 33 首字元的區域,但卻被\0佔據(第一個串).存第二個串的時候\0被覆蓋
------
2------
3------
......
------
10------
11 \0 而這裡是存放this is a 2 首字元的區域 卻被\0佔據 存 第3個串的時候\0又被覆蓋
------
2------
......
------
\0 所以這裡才是真正的結束位置,但這裡也越界了 。
------
所以你測試輸出 array[0]array[1]array[2]結果分別是如下,就是因為\0的原因
this is 1this is 33 this is a 2
this is 33 this is a 2
this is a 2
所以在呼叫 strrchr「 查詢串中最後一個' '的 位置」
這個串其實是 this is 1this is 33 this is a 2\0
所以輸出的是3個2而不是你期望的結果 1 33 2
只要改變下陣列合的範圍為串的長度就可以了。
如char array[3][11]; 改變二維長度 或者縮小串長度
如果對您有幫助,請記得采納為滿意答案,謝謝!祝您生活愉快!
3樓:e網e友
//關鍵使用strlen函式先求出字串的長度,再減一#include
#include
void main()
4樓:東方雨西
很簡單啊,直接傳換成char陣列,然後當作陣列一樣操作,如果你要把數字和字母分開,判斷一下ascii碼就行
5樓:匿名使用者
#include "stdio.h"
#include "string.h"
main()
6樓:匿名使用者
#include
using namespace std;
int main()
c# 取一個字串的第一個字元,和最後一個字元
7樓:匿名使用者
string test="test";
char first=test[0];
8樓:
第一個字元:str.substring(0, 1)
最後一個字元:str.substring(str.length-1, 1)
c#就是這樣。
9樓:匿名使用者
第一個字元:str.substring(0, 1)
最後一個字元:str.substring(str.length-2,1)
10樓:
string a = "abc";
string b=a.substring(0,1);a
11樓:匿名使用者
str.substring(0, 1)
str.substring(str.length-1, 1)
12樓:匿名使用者
取最後一個字元str.substring(str.length - 2, str.length-1)
13樓:匿名使用者
三樓正解啊。你這網上找的什麼啊,取的那是值,**是什麼字元了。
C幾種擷取字串的,C 幾種擷取字串的方法小結
c 幾種擷取字串的方法小結,需要的朋友可以參考一下 1.根據單個分隔字元用split擷取 例如 如下 string st gt123 1 string sarray st.split 即可得到sarray 0 gt123 sarray 1 1 2.利用多個字元來分隔字串 例如 如下 string s...
C擷取字串
如果格式是一致的,括號中都為數字的話,可以考慮使用正則來匹配 看你的資料時什麼樣的,如果字數固定 例如 102 2號桌 103 3號桌 這樣的你用substring最快也最方便。如果字數不固定,那都用split分割 var s 101 1號桌 var a s.split 得到 101 和 1號桌 v...
(急)php擷取字串問題
使用mb substr 這個是php自帶的內建函式庫,專門解決多位元組混合擷取的問題。string mb substr string str int start int length string encoding 中文擷取不亂碼,使用 iconv substr函式 str 我愛你abc中國 ech...