- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 52

Thema: Char - Array und Pointer

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    HaWe
    Gast
    for(i = 0; i< myArray.length(); i++) Ausgabe+=myArray[i]+'\n';
    das geht allerdings nicht in C, sondern nur in C++

    eine Übersicht über cstring Funktionen (ANSI/ISO C) findest du hier:
    http://www.cplusplus.com/reference/cstring/

    entspr. Funktion einfach anklicken, dann kommt eine Beschreibung mit code example, z.B:
    http://www.cplusplus.com/reference/cstring/strtok/

    - - - Aktualisiert - - -

    falls du ein paar cstring Funktionen suchst, die dort nicht enthalten sind, findest du hier vlt ein paar passende:

    Code:
    // Library: stringEx.h
    // extended C-string manipulation
    //
    // (C) dsyleixa 2015-2019
    // freie Verwendung für private Zwecke
    // für kommerzielle Zwecke nur nach Genehmigung durch den Autor.
    // Programming language: Arduino Sketch C/C++ (IDE 1.6.1 - 1.6.3)
    // protected under the friendly Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
    // http://creativecommons.org/licenses/by-nc-sa/3.0/   //   
    
    
    
    
    #ifndef  STRINGEX_H
    #define STRINGEX_H
    
    
    //------------------------------------------------------------
    
    char * sprintDouble();
    char * strinsert();
    char * strdelnpos();
    char * strpatch();
    char * substr();
    int16_t  strchpos();
    int16_t  strstrpos();
    char * stradd();
    char * cstringarg();
    
    
    
    //----------------------------------------------------------------------------
    // cstring functions
    //----------------------------------------------------------------------------
    
    char * sprintDouble(char* s, double val, int width, int prec, bool sign)  {   
       char sbuf[20] ="\0";
       strcpy(s, "\0");
       dtostrf(val, width, prec, s);
    
       if(sign && val>0) {
         for (int i=width-1; i>=0; i--) {
           if(s[i]==' ') {s[i]='+'; break;}
         }
       }
       return s;
    }
    
    
    
    //------------------------------------------------------------
    
    char * strdelnpos( char * source, int16_t  pos, int16_t  sublen ) {  // delete a substr in string at pos
       int   srclen;
       char  * sret = source;
    
       srclen = strlen(source);
    
       if( pos > srclen ) return sret;
       if( sublen > srclen-pos ) sublen = srclen-pos;
       memmove( source+pos, source+pos+sublen, srclen+sublen);
       source[srclen-sublen]= '\0';
       return sret;   
    }   
     
    
    
    //------------------------------------------------------------
    
    char * strpatch( char * source, char * sub, int16_t  pos )  {  // patch string by substr at pos
       int16_t srclen, sublen;
       char  * sret = source;
       
       srclen = strlen(source);
       sublen = strlen(sub);
       
       if( pos+sublen > srclen) return sret;   // size/position error
       memcpy(source+pos, sub, sublen);    
    
       return sret;     
    }
    
    
    
    //------------------------------------------------------------
    
    char  * substr  ( char * source, char * sub, int16_t  pos, int16_t len ) { // get substr of source at pos by length 
       char   *sret = sub;
    
       if ( (pos+len) >  strlen(source) ) len = strlen(source)-pos;  // cut away if too long
       sub = strncpy(sub, source+pos, len);
       sub[len] = '\0';
      
       return sret;  
    }
    
    
    
    
    //------------------------------------------------------------
    
    int16_t strchpos( char * str, char ch ) {       // find 1st occurence of char ch in string str
       int16_t  len, i=-1;
       
       len=strlen(str);
       if(len==0) return i;
       for(i=0; i<len; ++i) {
         if(str[i]==ch) break;   
       }   
       return i;
    }   
    
    
    
    
    //------------------------------------------------------------
    
    char * stradd(char * s, int n, ...)  // "adds strings" s=sumstring , n=number_in_list, ... = var string list
    {
        va_list vlst;    
        int i;
        
        char * bufptr;
        char * retptr = s;
        
        va_start(vlst, n);
        for (i=1; i<=n; ++i)   {
           bufptr = va_arg(vlst, char *);
           strcat(s, bufptr);
        }
        va_end(vlst);	
        return retptr;    
    }
    
    
    
    //------------------------------------------------------------
    
    int16_t  strstrpos(char * haystack,  char * needle)   // find 1st occurance of substr in str
    {
       char *p = strstr(haystack, needle);
       if (p) return p - haystack;
       return -1;   // Not found = -1.
    }
    
    
    
    //-------------------------------------------------------
    
    const int  MAXLEN = 1024;
    const int  TOKLEN = 64;
    
    //-------------------------------------------------------
    
    char * cstringarg( char* haystack, char* vname, char* sarg ) {  // search for &vname=sarg or ?vname=sarg, returns sarg  
       int i=0, pos=-1;
       unsigned char  ch=0xff;
       const char*  kini = "&";       // start of varname: '&'
       const char*  kin2 = "?";       // start of varname: '?'
       const char*  kequ = "=";       // end of varname, start of argument: '='
       char  needle[TOKLEN] = "";     // complete pattern:  &varname=abc1234
    
       strcpy(sarg,"");
       strcpy(needle, kini);
       strcat(needle, vname);
       strcat(needle, kequ);
       pos = strstrpos(haystack, needle); 
       if(pos==-1) {
          needle[0]=kin2[0];
          pos = strstrpos(haystack, needle);
          if(pos==-1) return sarg;
       }
       pos=pos+strlen(vname)+2; // start of value = kini+vname+kequ   
       while( (ch!='&')&&(ch!='\0') ) {
          ch=haystack[pos+i];    
          if( (ch=='&')||(ch==';')||(ch=='\0') ||(ch=='\n') ||(ch=='\r')
            ||(i+pos>=strlen(haystack))||(i>TOKLEN-1) ) {
               sarg[i]='\0';
               return sarg;
          }       
          if( (ch!='&') ) {
              sarg[i]=ch;          
              i++;       
          }      
       } 
       return sarg;
    }
    
    
    //------------------------------------------------------------
    #endif
    //------------------------------------------------------------
    //------------------------------------------------------------
    Geändert von HaWe (28.10.2019 um 12:09 Uhr)

Ähnliche Themen

  1. Pointer auf Struct von Byte-Array
    Von Bumbum im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 31.05.2013, 16:01
  2. Char mit array verbinden ?
    Von AsuroPhilip im Forum Software, Algorithmen und KI
    Antworten: 22
    Letzter Beitrag: 08.09.2011, 13:37
  3. gelöst : Frage zu C und 2 Dim char Array
    Von jar im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 29.05.2007, 16:53
  4. zweidemensionales char-array
    Von p_mork im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 15.03.2007, 16:54
  5. Cstring einem char array zuweisen
    Von ceekay im Forum Software, Algorithmen und KI
    Antworten: 8
    Letzter Beitrag: 17.04.2006, 10:20

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests