Функција стркфрм () у Ц ++ трансформише дати нуле завршени низ бајтова у облик дефинисан имплементацијом.
Функција стркфрм () трансформише стринг тако да упоређивање два трансформисана низа помоћу функције стрцмп () даје идентичан резултат као упоређивање изворних низова помоћу функције стрцолл () у тренутном Ц локалитету.
На пример, к и и су два низа. а и б су два низа настала трансформацијом к и и респективно помоћу функције стркфрм. Тада је позив стрцмп (а, б) исти као позив стрцолл (к, и).
прототип стркфрм ()
сизе_т стркфрм (цхар * дест, цонст цхар * срц, сизе_т цоунт);
Функција стркфрм () претвара прве бројеве знакова низа на који указује срц у облик дефинисан имплементацијом, а резултат се чува на меморијској локацији на коју указује дест.
Понашање ове функције није дефинисано ако:
- величина дестинације је мања од потребне величине.
- дест и срц се преклапају.
Дефинисано је у датотеци заглавља "> датотека заглавља.
стркфрм () Параметри
- дест: показивач на низ у коме се налази трансформисани низ.
- срц: показивач на нулто завршени низ који треба трансформисати.
- цоунт: максималан број знакова за конверзију.
стркфрм () Повратна вредност
Функција стркфрм () враћа број трансформисаних знакова, изузимајући крајњи нулл знак ' 0'.
Пример: Како функционише функција стркфрм ()?
#include #include #include using namespace std; int main() ( setlocale(LC_COLLATE, "cs_CZ.UTF-8"); const char* s1 = "hrnec"; const char* s2 = "chrt"; char t1(20), t2(20); cout << "strcoll returned " << strcoll(s1,s2) << endl; cout << "Before transformation, " << "strcmp returned " << strcmp(s1,s2) << endl; strxfrm(t1,s1,10); strxfrm(t2,s2,10); cout << "After transformation, " << "strcmp returned " << strcmp(t1,t2) << endl; return 0; )
Када покренете програм, излаз ће бити:
стрцолл вратио -1 Прије трансформације, стрцмп вратио 1 Након трансформације, стрцмп је вратио -1