gXa's blog

By gXa, history, 9 years ago, In English

Can anybody plz ezplain:

for(int i = 1; i <= n; i++) { scanf("%s", a[i] + 1); }

I know this one

for(int i = 1; i <= n; i++) { scanf("%s", a[i] ); }

But I don't know the use of above scanf("%s", a[i] + 1); Plz guide me on this.

  • Vote: I like it
  • +7
  • Vote: I do not like it

»
9 years ago, # |
  Vote: I like it +1 Vote: I do not like it

When you use scanf() you must give a pointer to it. When you use scanf("%d", a[i]+1) it means that you are using 1-based indexing, So the your string is starting from index 1(not 0).

  • »
    »
    9 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Can I do the same with strings, what I mean is:

    string st; cin >> (st + 1);

    I know it is does not work but is there any way to do this?

    • »
      »
      »
      9 years ago, # ^ |
        Vote: I like it +1 Vote: I do not like it

      you can do:
      string st;
      cin >> st;
      st = ((string)" ") + st;

      • »
        »
        »
        »
        9 years ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        Thanks

      • »
        »
        »
        »
        9 years ago, # ^ |
        Rev. 2   Vote: I like it 0 Vote: I do not like it

        Can u tell after I perform certain operations, now I want to print original string without initial space given at beginning. What I would do then?