Sponsored Content
Top Forums Programming Pure C function pointer on printing vowels twice Post 302997643 by yifangt on Wednesday 17th of May 2017 04:14:52 PM
Old 05-17-2017
I think I can get the logic part, but not the 'ee' from Test to Teest'.
I re-wrote the code to avoid any possible confusion just simply printing each char twice:
Code:
#include <stdio.h>
#include <stdlib.h>

/*Print a char twice like putchar, return char if successful, or EOF on error.*/

int putcharTwice(int c)
{
    if (putchar(c) == EOF || putchar(c) == EOF)  {
    return EOF;
    } else {
    putchar(c);  //explicit printing
    putchar(c);  //explicit printing
    return 0;
    }
}

int main(int argc, char **argv)
{
    int c;

    while ((c = getchar()) != EOF) {
    putcharTwice(c); 
     }
    return 0;
}

but the code actually print each char FOUR times!
Code:
$ echo Test | ./a.out
TTTTeeeesssstttt.

Apparently every last two repeats are from the explicit printing. Where are the first two repeats from?
Sorry for my slow catch!

Last edited by yifangt; 05-17-2017 at 05:27 PM..
 

10 More Discussions You Might Find Interesting

1. Programming

Problem with function which reutrns pointer to a value

i have a function: char *pcCityIdToCountryName(ADMIN_DB_DATA *pstHEader, unit uiCityID) this returns a pointer to CountryName if cityId is given. to retrieve countryname i give: char *CountryName; CountryName = pcCityIdToCountryName(..................); but when i compile it is giving :... (5 Replies)
Discussion started by: jazz
5 Replies

2. Programming

Pure Virtual Function in C++

Dear All, Here I want to know why we put =0 in case of pure virtual function, why not =1, =2 or any thing else Please send me answer any one as soon as possible. (1 Reply)
Discussion started by: krishna_sicsr
1 Replies

3. Programming

How to return void function pointer

Hello all im trying to build function that will return void function pointer what is mean is ( not working ) the main function void * myClass::getFunction(int type){ if(type==1) return &myClass::Test1; if(type==2) return &myClass::Test2; } void myClass::Test1(){... (1 Reply)
Discussion started by: umen
1 Replies

4. Programming

Function pointer to inline function ?

Hi. Problem: I have to parse the payload of a packet. The payload could be in Big Endian Format (network byte order) or little. That depends on a flag present in the header of the packet. Solution: A horrible solution could be to check for that flag everytime I have to read a field in the... (11 Replies)
Discussion started by: emitrax
11 Replies

5. Programming

Function Returning Pointer

Hi guys. how a functions such fdopen, ... can return pointer? are these functions use static memory(variables)? (6 Replies)
Discussion started by: majid.merkava
6 Replies

6. UNIX for Dummies Questions & Answers

Printing pointer address

How can I print the memory address of a pointer using printf (or any other STDOUT functions?). I see in Linux its %p but not in unix, help? thanks (5 Replies)
Discussion started by: perleo
5 Replies

7. Programming

structure pointer array as function parameters

if i create an array of pointers to a structure "struct node" as: struct node *r; and create "n" number of "linked lists" and assign it to the various struct pointers r using some function with a return type as structure pointer as: r=multiplty(.......) /*some parameters*/ is... (2 Replies)
Discussion started by: mscoder
2 Replies

8. Programming

Trivial doubt about C function pointer

Hi, In the below C code, #include <stdio.h> void print() { printf("Hello\n"); } int main() { void (*f)() = (void (*)()) print; f(); (*f)(); } I wonder, how the syntaxes "f()" and "(*f)()" are treated as same without any error? Is this an improvement or ANSI/ISO... (1 Reply)
Discussion started by: royalibrahim
1 Replies

9. UNIX for Dummies Questions & Answers

Counting vowels in string. "Comparison pointer-integer".

I'm trying to write a programme which scans strings to find how many vowels they contain. I get an error saying that I'm trying to compare a pointer and an integer inif(*v == scanme){. How can I overcome this ? Also, the programme seems to scan only the first word of a string e.g.: if I type "abc... (1 Reply)
Discussion started by: fakuse
1 Replies

10. Programming

Segmentation fault when I pass a char pointer to a function in C.

I am passing a char* to the function "reverse" and when I execute it with gdb I get: Program received signal SIGSEGV, Segmentation fault. 0x000000000040083b in reverse (s=0x400b2b "hello") at pointersExample.c:72 72 *q = *p; Attached is the source code. I do not understand why... (9 Replies)
Discussion started by: jose_spain
9 Replies
thai/wtt.h(3)							      libthai							     thai/wtt.h(3)

NAME
thai/wtt.h - WTT I/O implementation. SYNOPSIS
Enumerations enum WTTClass { CTRL = 0, NON = 1, CONS = 2, LV = 3, FV1 = 4, FV2 = 5, FV3 = 6, BV1 = 7, BV2 = 8, BD = 9, TONE = 10, AD1 = 11, AD2 = 12, AD3 = 13, AV1 = 14, AV2 = 15, AV3 = 16 } Classification of characters in TIS620 according to WTT. enum WTTOp { CP = 1, XC = 2, AC = 3, RJ = 4, SR = 5 } Composibility checking tables. Functions WTTClass TACchtype (thchar_t c) WTT character class. WTTOp TACio_op (thchar_t c1, thchar_t c2) WTT I/O operation. Detailed Description WTT I/O implementation. WTT stands for Wing Tuk Tee (in Thai, Runs everywhere). It was defined by TACTIS (Thai API Consortium/Thai Industrial Standard) in the NECTEC Thai Software Standard Project (1989-1991), and later endorsed by Thai Industrial Standard Institute (TISI) as TIS 1566-2541 in 1998. WTT classifies Thai chracter(TIS-620) into 17 types below. ITYPE VALUE SHORT_DESCRIPTION CTRL 0 control characters NON 1 non composible characters CONS 2 consonants LV 3 leading vowels FV1 4 following vowels 1 FV2 5 following vowels 2 FV3 6 following vowels 3 BV1 7 below vowels 1 BV2 8 below vowels 2 BD 9 below diacritics TONE 10 tonemarks AD1 11 above diacritics 1 AD2 12 above diacritics 2 AD3 13 above diacritics 3 AV1 14 above vowels 1 AV2 15 above vowels 2 AV3 16 above vowels 3 Functions in thctype.h do basic character classifications while wtt.h classifies a chracter in detail. Please refer to the reference. TACio_op() checks how to compose two given chracters. The possiblities are Composible (CP), Non-display (XC), Accept (AC), Reject (RJ) and Strict Reject (SR). The values of CP, XC, AC, RJ and SR are difined in wtt.h. And their meanings are: o CP : second character is displayed in the same cell as the first, also implies an acceptance. o XC : Do nothing. o AC : Display second character in the next cell. o RJ : Discard second character. o SR : Reject second character only in strict mode. Enumeration Type Documentation enum WTTClass Classification of characters in TIS620 according to WTT. Enumerator CTRL control chars NON non composibles CONS consonants LV leading vowels FV1 following vowels 1 FV2 following vowels 2 FV3 following vowels 3 BV1 below vowels 1 BV2 below vowels 2 BD below diacritics TONE tonemarks AD1 above diacritics 1 AD2 above diacritics 2 AD3 above diacritics 3 AV1 above vowels 1 AV2 above vowels 2 AV3 above vowels 3 enum WTTOp Composibility checking tables. Enumerator CP COMPOSIBLE - following char is displayed in the same cell as leading char, also implies ACCEPT XC Non-display AC ACCEPT - display the following char in the next cell RJ REJECT - discard that following char, ignore it SR STRICT REJECT - REJECT only if in strict mode Function Documentation WTTClass TACchtype (thchar_tc) WTT character class. Parameters: c : the character Returns: WTT character class { CTRL, ..., AV3 } WTTOp TACio_op (thchar_tc1, thchar_tc2) WTT I/O operation. Parameters: c1 : previous character c2 : next character Returns: WTT I/O operation { CP, XC, AC, RJ, SR } Author Generated automatically by Doxygen for libthai from the source code. Version 0.1.14 Tue Jun 17 2014 thai/wtt.h(3)
All times are GMT -4. The time now is 12:42 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy