Waitrud Weber’s blog

things and reminders for memories

Analyzer: windows-make: we can qualify the m_replace:

To paste source code, we use the table block in this site hatena.

They can not allow us to paste enough lines of source code, so we use twice paste in table block.

And font-size we can change, is very helpful for us, thank you very much of hatena.

 

The reason why the function doesn't work well, the one line is skipped and shown bold like the below. 

1 m_replace: qualified: 3/15    
2 array_counter.cpp    
> .\winmain_001.exe
a_001 |aaa<><></>_001_bbb
ccc|
i|0| c1|97|=|a| a_c=0 a_f=5 c2|95||_|
i|1| c1|97|=|a| a_c=0 a_f=5 c2|95||_|
i|2| c1|97|=|a| a_c=0 a_f=5 c2|95||_|
i|3| c1|60|=|<| a_c=0 a_f=5 c2|95||_|
i|4| c1|62|=|>| a_c=0 a_f=5 c2|95||_|
i|5| c1|60|=|<| a_c=0 a_f=5 c2|95||_|
i|6| c1|62|=|>| a_c=0 a_f=5 c2|95||_|
i|7| c1|60|=|<| a_c=0 a_f=5 c2|95||_|
i|8| c1|47|=|/| a_c=0 a_f=5 c2|95||_|
i|9| c1|62|=|>| a_c=0 a_f=5 c2|95||_|
i|10| c1|95|=|_| a_c=5 a_f=5 c2|95||_|
i|15| c1|98|=|b| a_c=0 a_f=5 c2|95||_|
i|16| c1|98|=|b| a_c=0 a_f=5 c2|95||_|
i|17| c1|98|=|b| a_c=0 a_f=5 c2|95||_|
| a_c=0 a_f=5 c2|95||_|
i|19| c1|10|=|
| a_c=0 a_f=5 c2|95||_|
i|20| c1|99|=|c| a_c=0 a_f=5 c2|95||_|
i|21| c1|99|=|c| a_c=0 a_f=5 c2|95||_|
i|22| c1|99|=|c| a_c=0 a_f=5 c2|95||_|
a_001 |aaa<><></>ddbbb
ccc|
   
 4
.\array_counter.cpp  Mon Mar 15 20:51:28 2021
...
123 ://
124 :char* m_replace ( char* char_string,
125 : char* from_string, char* to_string ) {
126 :	char c1, c2;
127 :	int count = array_count( char_string );
128 :	int a_f = array_count( from_string );
129 :	int a_t = array_count( to_string );
130 :	int a_c = 0;
131 :	char* char_string_2 = 
132 :	  (char *) malloc ( sizeof (char)*( count + a_t - 1 ) );
133 :
134 :	int cnt_replace = 0;
135 :	for ( int i = 0; i<count; i++ ) {
136 :		c1 = *( char_string + i ) ;
137 :		a_c = 0;
138 :		for ( int j=0; ja_f && j <count; j++ ) {
   
5  
139 :			c1 = *( char_string + i + j ) ;
140 :			c2 = *( from_string + j ) ;
141 :			if ( c1 != c2 ) break;
142 :			a_c++;
143 :		}
144 :
145 :		printf("i|%d| c1|%d|=|%c| a_c=%d a_f=%d c2|%d||%c|\r\n", i, c1, c1, a_c, a_f, c2, c2 );
146 :		if ( a_c == a_f && cnt_replace == 0) {
147 :			// match
148 :			int to = i + a_t;
149 :			for( int k=0; k<a_t; k++ ) {
150 :				*( char_string_2 + i + k + cnt_replace*(a_t- a_f ) ) = 
151 :				  *( to_string + k );
152 :			}
153 :			i += a_f - 1 ;
154 :			cnt_replace++;
155 :		} else {
156 :			*( char_string_2 + i + cnt_replace*(a_t- a_f ) ) = c1;
157 :		}
158 :	}
159 :	*( char_string_2 + count + cnt_replace*( a_t - a_f ) ) = '\0';
160 :	put_memories ( char_string_2 );
161 :
162 :	return char_string_2;
163 :}
   
       

 

*