How to print out a specific numeric pattern
I just had a question about C. I have a file that has text in the format of:
7034327874 5408438437 3267239807 1824566789
I was wondering how I would read in the data and in another file, print out:
703-432-7874 540-843-8437 326-723-9807 182-456-6789
Just consider these numbers as strings of characters (each character happens to be a digit). Then do character processing on them.
char str; memset (str, 0, sizeof(str)); if (scanf(" %15[0-9]", &str) > 0) printf("%.3s", str);
should, if fed with
073(notice that your example don't explain what should have happened in that case, and I am guessing one way of doing it. My guess could be wrong if
0734327574is actually meant as an octal number for the decimal number 124891004).
The rest is an exercise to the reader. Of course you need to carefully read the documentation of memset, of scanf, of printf. Don't forget to end
printfformat strings with
\nor to call fflush on
stdout(which is often line-buffered).
Remember that numbers don't have digits. Only their notation have digits. The number 20, written in Roman notation XX, in English twenty, in French vingt, in hexadecimal
0x14, in octal
248), in binary 10100, as the simple arithmetic expression 3*7-1, is still the same number (which happens to be twice the number of fingers I have on my hands, and is also the number of arrondissements in Paris).