Блог пользователя KayacanV

Автор KayacanV, 10 лет назад, По-английски

how can i read to c++ string from position one not zero

  • Проголосовать: нравится
  • +3
  • Проголосовать: не нравится

»
10 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

If you are using char*, you can make sth like

char s[1000];
gets(s + 1);
or
scanf("%s", s + 1);
  • »
    »
    10 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится

    no i am using std :: string

    • »
      »
      »
      10 лет назад, # ^ |
        Проголосовать: нравится +40 Проголосовать: не нравится

      s = "#" + s;

      • »
        »
        »
        »
        10 лет назад, # ^ |
        Rev. 2   Проголосовать: нравится +5 Проголосовать: не нравится

         I forgot, ty

        • »
          »
          »
          »
          »
          10 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится

          I actually use this whenever I use strings (though for not that long time). Got a problem xd? It is comfortable, makes everything much easier for those indexing from 1 (I belong to that set) and in fact it is linear in time, but time it executes is really neglectable, surely much shorter than that needed to read it.

        • »
          »
          »
          »
          »
          10 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится

          char * const str = &s[0] - 1;

      • »
        »
        »
        »
        10 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        Is this constant time?

        • »
          »
          »
          »
          »
          10 лет назад, # ^ |
            Проголосовать: нравится +11 Проголосовать: не нравится

          I'm not sure, but it should be at worst O(n), and since you read the string, the program must be at least O(n), so it shouldn't matter anyway.

»
10 лет назад, # |
  Проголосовать: нравится -20 Проголосовать: не нравится
    char temp[1000];
    gets(temp + 1);
    temp[0] = ' ';  // Some char that should stay in 0's position in your string
    string s(temp)