int main() { // Aquí estamos creando un array de caracteres (string). No le estamos // agregando el '\0' necesario para que todas las funciones que operen // con strings sepan cuando el string finaliza. char strSinBarraCero[] = { 'u', 'n', 't', 'r', 'e', 'f' }; // Por lo que comentamos anteriormente creamos un string utilizando como // último caracter el '\0' char strConCodigosDecimales[] = { 'H', 'o', 'l', 'a', 32, 'U', '\0' }; // Las formas anteriores son muy incómodas, C nos provee el siguiente // atajo. Este SÍ incluye el '\0' al final del string char strConBarraCero[] = "HOLA UNTREF"; assert(sizeof(strSinBarraCero), 6); // NO Incluye el '\0' POR QUE NO LO AGREGAMOS assert(sizeof(strConCodigosDecimales), 7); // SI Incluye el '\0' POR QUE LO AGREGAMOS assert(sizeof(strConBarraCero), 12); // Incluye el '\0' // Imprimamos para ver que tienen los strings // printf("strSinBarraCero: %s\n", strSinBarraCero); // printf("strConCodigosDecimales: %s\n", strConCodigosDecimales); // printf("strConBarraCero: %s\n", strConBarraCero ); // En lugar de imprimir el contenido del str para comprobar que es lo // que tiene, podemos hacer unos tests denyStr(strConBarraCero, "untref"); assertStr(strConCodigosDecimales, "Hola U"); assertStr(strConBarraCero, "HOLA UNTREF"); // Ahora quiero agregarle al string strConBarraCero el str 2015. NO HAY LUGAR LUEGO DE LA 'F' // porque solo alocamos espacio para 'HOLA UNTREF'. // Necesitamos creear un buffer en el cual entre 'HOLA UNTREF 2015' char buffer[BUFFER_SIZE]; // Copiamos el contenido de strConBarraCero al buffer copiar(buffer, strConBarraCero); concatenar(buffer, " 2015"); assertStr(buffer, "HOLA UNTREF 2015"); #if 0 char* str3 = davidCopy(strConBarraCero); printf("%s\n", str3); #endif return 0; }
int main() { int i = 4; int j = 5; double a = 2.3; double b = 8.0; swap(&i, &j, sizeof(int)); swap(&a, &b, sizeof(double)); assert(i, 5); assert(j, 4); assert(a, 8.0); assert(b, 2.3); char str[] = "Longitud de str"; char buffer[1024]; assert( strlen(str), 15); assert( longitud(str), 15); copiar(buffer, str); assertStr( buffer, "Longitud de str"); // int numero = 0; // printf("%d\n", numero = 10 ); // printf("%d\n", numero ); return 0; }
int testAddMarkToChar(void) { initTestCase("Add mark to char"); bgstr target = "a"; addMarkToChar(target, MARK_HAT); assertStr("â", target); // Char should stay the same if non-compatible mark is applied bgstrAssign(target, "a"); addMarkToChar(target, MARK_DASH); assertStr("a", target); // Should change/remove mark bgstrAssign(target, "â"); addMarkToChar(target, MARK_NONE); assertStr("a", target); // Should work with upper case chars bgstrAssign(target, "D"); addMarkToChar(target, MARK_DASH); assertStr("Đ", target); return finishTestCase(); }
int testAddToneToChar(void) { initTestCase ("Add tone to char"); bgstr target = "a"; addToneToChar(target, TONE_ACUTE); assertStr("á", target); // Consonants should not be touched bgstrAssign(target, "n"); addToneToChar(target, TONE_ACUTE); assertStr("n", target); // Should work with complex vowel bgstrAssign(target, "ư"); addToneToChar(target, TONE_ACUTE); assertStr("ứ", target); // Should also change tone bgstrAssign(target, "ứ"); addToneToChar(target, TONE_GRAVE); assertStr("ừ", target); return finishTestCase (); }