Example #1
0
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;
}
Example #2
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;
}
Example #3
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();
}
Example #4
0
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 ();
}