猿问

怎么样对一个遍历一个不规则字符串数组,找到每列中最长字符串的大小

如图,数字代表不同的字符串,我想知道用什么方法可遍历以做到找到每一列中最长的字符串的长度。 
注意,图只是一种情况,已知字符串数组的行数和每一行对应的列数

繁星点点滴滴
浏览 851回答 1
1回答

慕妹3242003

&nbsp;//&nbsp;Q695423.cpp&nbsp;:&nbsp;Defines&nbsp;the&nbsp;entry&nbsp;point&nbsp;for&nbsp;the&nbsp;console&nbsp;application. // #include&nbsp;"stdafx.h" #include&nbsp;"stdlib.h" #include&nbsp;"string.h" #include&nbsp;<iostream> using&nbsp;namespace&nbsp;std; struct&nbsp;MyArr { &nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;len; &nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;**&nbsp;arr; &nbsp;&nbsp;&nbsp;&nbsp;MyArr(int&nbsp;n,&nbsp;char&nbsp;*&nbsp;_arr[]) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n&nbsp;=&nbsp;n&nbsp;/&nbsp;(sizeof(char&nbsp;*)); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arr&nbsp;=&nbsp;new&nbsp;char&nbsp;*[n]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;len&nbsp;=&nbsp;n; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;n;&nbsp;i++)&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arr[i]&nbsp;=&nbsp;_arr[i]; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;~MyArr() &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete[]&nbsp;arr; &nbsp;&nbsp;&nbsp;&nbsp;} }; class&nbsp;ExpendCol { private: &nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;_len; &nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;_alen; &nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;*&nbsp;_pa; &nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;expend(int&nbsp;a) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;*&nbsp;pp&nbsp;=&nbsp;_pa; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_pa&nbsp;=&nbsp;new&nbsp;int[a]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(_pa,&nbsp;0,&nbsp;sizeof(int)&nbsp;*&nbsp;a); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memcpy(_pa,&nbsp;pp,&nbsp;sizeof(int)&nbsp;*&nbsp;_len); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete[]&nbsp;pp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_alen&nbsp;=&nbsp;a; &nbsp;&nbsp;&nbsp;&nbsp;} public: &nbsp;&nbsp;&nbsp;&nbsp;ExpendCol() &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_alen&nbsp;=&nbsp;1; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_pa&nbsp;=&nbsp;new&nbsp;int[_alen]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_len&nbsp;=&nbsp;0; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;~ExpendCol() &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete[]&nbsp;_pa; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;set(int&nbsp;index,&nbsp;int&nbsp;value) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(index&nbsp;>=&nbsp;_alen) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;expend(_alen&nbsp;*&nbsp;2); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(_len&nbsp;<=&nbsp;index)&nbsp;_len&nbsp;=&nbsp;index&nbsp;+&nbsp;1; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_pa[index]&nbsp;=&nbsp;value; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;get(int&nbsp;index) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(index&nbsp;>=&nbsp;_len)&nbsp;return&nbsp;0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;_pa[index]; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;length() &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;_len; &nbsp;&nbsp;&nbsp;&nbsp;} }; int&nbsp;_tmain(int&nbsp;argc,&nbsp;_TCHAR*&nbsp;argv[]) { &nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;*&nbsp;s1&nbsp;=&nbsp;"file"; &nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;*&nbsp;s2&nbsp;=&nbsp;"edit"; &nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;*&nbsp;s3&nbsp;=&nbsp;"view"; &nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;*&nbsp;s4&nbsp;=&nbsp;"project"; &nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;*&nbsp;s5&nbsp;=&nbsp;"build"; &nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;*&nbsp;s6&nbsp;=&nbsp;"debug"; &nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;*&nbsp;s7&nbsp;=&nbsp;"team"; &nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;*&nbsp;s8&nbsp;=&nbsp;"data"; &nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;*&nbsp;s9&nbsp;=&nbsp;"tools"; &nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;*&nbsp;s10&nbsp;=&nbsp;"architecture"; &nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;*&nbsp;a1[]&nbsp;=&nbsp;{&nbsp;s1,&nbsp;s2,&nbsp;s3&nbsp;}; &nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;*&nbsp;a2[]&nbsp;=&nbsp;{&nbsp;s4,&nbsp;s5,&nbsp;s6,&nbsp;s7&nbsp;}; &nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;*&nbsp;a3[]&nbsp;=&nbsp;{&nbsp;s8,&nbsp;s9&nbsp;}; &nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;*&nbsp;a4[]&nbsp;=&nbsp;{&nbsp;s10&nbsp;}; &nbsp;&nbsp;&nbsp;&nbsp;MyArr&nbsp;arr[]&nbsp;=&nbsp;{&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyArr(sizeof(a1),&nbsp;a1),&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyArr(sizeof(a2),&nbsp;a2), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyArr(sizeof(a3),&nbsp;a3), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyArr(sizeof(a4),&nbsp;a4) &nbsp;&nbsp;&nbsp;&nbsp;}; &nbsp;&nbsp;&nbsp;&nbsp;ExpendCol&nbsp;r; &nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;sizeof(arr)&nbsp;/&nbsp;sizeof(MyArr);&nbsp;i++) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;j&nbsp;=&nbsp;0;&nbsp;j&nbsp;<&nbsp;arr[i].len;&nbsp;j++) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;slen&nbsp;=&nbsp;strlen(arr[i].arr[j]); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(r.get(j)&nbsp;<&nbsp;slen)&nbsp;r.set(j,&nbsp;slen); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;r.length();&nbsp;i++) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;<<&nbsp;"col"&nbsp;<<&nbsp;i&nbsp;<<&nbsp;":"&nbsp;<<&nbsp;r.get(i)&nbsp;<<&nbsp;endl; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0; }
随时随地看视频慕课网APP
我要回答