strings.cpp

自定义字符串类实现

  name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-5572165936844014&dt=1194442938015&lmt=1194190197&format=336x280_as&output=html&correlator=1194442937843&url=file%3A%2F%2F%2FC%3A%2FDocuments%2520and%2520Settings%2Flhh1%2F%E6%A1%8C%E9%9D%A2%2FCLanguage.htm&color_bg=FFFFFF&color_text=000000&color_link=000000&color_url=FFFFFF&color_border=FFFFFF&ad_type=text&ga_vid=583001034.1194442938&ga_sid=1194442938&ga_hid=1942779085&flash=9&u_h=768&u_w=1024&u_ah=740&u_aw=1024&u_cd=32&u_tz=480&u_java=true" frameborder="0" width="336" scrolling="no" height="280" allowtransparency="allowtransparency"> class Strings {
   char *p;
   int size;
 public:
   Strings(char *str);
   Strings(void);
   Strings(const Strings &obj);           // Copy constructor
   ~Strings(void) {delete [] p;}

   friend ostream &operator<<(ostream &stream, Strings &obj);
   friend istream &operator>>(istream &stream, Strings &obj);

   Strings operator=(Strings &obj);       // assign a Strings object
   Strings operator=(char *s);            // assign a quoted string
   Strings operator+(Strings &obj);       // concatenate a Strings object
   Strings operator+(char *s);            // concatenate a quoted string
   friend Strings operator+(char *s, Strings &obj);
            /* concatenates a quoted string with a Strings object */

   Strings operator-(Strings &obj);       // subtract a Strings object
   Strings operator-(char *s);            // subtract a quoted string

 /* relational operators between Strings objects. Note that the operators could
    just as easily return bool, rather than int */

   int operator==(Strings &obj) {return !strcmp(p, obj.p);}
   int operator!=(Strings &obj) {return strcmp(p, obj.p);}
   int operator<(Strings &obj) {return strcmp(p, obj.p) < 0;}
   int operator>(Strings &obj) {return strcmp(p, obj.p) > 0;}
   int operator<=(Strings &obj) {return strcmp(p, obj.p) <= 0;}
   int operator>=(Strings &obj) {return strcmp(p, obj.p) >= 0;}

 /* relational operators between Strings object and a quoted character string.
    Note that the operators could just as easily return bool, rather than int */

   int operator==(char *s) {return !strcmp(p, s);}
   int operator!=(char *s) {return strcmp(p, s);}
   int operator<(char *s) {return strcmp(p, s) < 0;}
   int operator>(char *s) {return strcmp(p, s) > 0;}
   int operator<=(char *s) {return strcmp(p, s) <= 0;}
   int operator>=(char *s) {return strcmp(p, s) >= 0;}

   int strsize(void) {return strlen(p);}      // return string size
   void makestr(char *s) (strcpy(s, p);}  // make quoted string from Strings object

   operator char *(void) {return p;}          // conversion to char
 }

 

Processing esp32s3 (platform: espressif32 @ ~6.9.0; board: esp32-s3-devkitc-1; framework: arduino) ----------------------------------------------------------------------------------------------------------------------------------------------------------------- Verbose mode can be enabled via `-v, --verbose` option CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32-s3-devkitc-1.html PLATFORM: Espressif 32 (6.9.0) > Espressif ESP32-S3-DevKitC-1-N8 (8 MB QD, No PSRAM) HARDWARE: ESP32S3 240MHz, 320KB RAM, 8MB Flash DEBUG: Current (esp-builtin) On-board (esp-builtin) External (cmsis-dap, esp-bridge, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa) PACKAGES: - framework-arduinoespressif32 @ 3.20017.241212+sha.dcc1105b - tool-esptoolpy @ 1.40501.0 (4.5.1) - toolchain-riscv32-esp @ 8.4.0+2021r2-patch5 - toolchain-xtensa-esp32s3 @ 8.4.0+2021r2-patch5 LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf LDF Modes: Finder ~ chain, Compatibility ~ soft Found 38 compatible libraries Scanning dependencies... Dependency Graph |-- SPI @ 2.0.0 |-- ArduinoJson @ 6.21.5 |-- Adafruit BusIO @ 1.16.1 |-- Adafruit GFX Library @ 1.11.11 |-- ESP32SPISlave @ 0.6.3 |-- WiFi @ 2.0.0 |-- ESP32 BLE Arduino @ 2.0.0 |-- HTTPClient @ 2.0.0 |-- WebServer @ 2.0.0 Building in release mode Compiling .pio\build\esp32s3\src\BLEClient.cpp.o Compiling .pio\build\esp32s3\src\esp_uart_driver.cpp.o Compiling .pio\build\esp32s3\src\main.cpp.o Compiling .pio\build\esp32s3\src\network.cpp.o Compiling .pio\build\esp32s3\src\network_app.cpp.o Compiling .pio\build\esp32s3\src\network_tcp_client.cpp.o Compiling .pio\build\esp32s3\src\network_tcp_server.cpp.o Compiling .pio\build\esp32s3\src\spi_slave_server.cpp.o Compiling .pio\build\esp32s3\src\tcp_server.cpp.o Compiling .pio\build\esp32s3\src\uart_msg_analy.cpp.o Building .pio\build\esp32s3\bootloader.bin Generating partitions .pio\build\esp32s3\partitions.bin esptool.py v4.5.1 Creating esp32s3 image... Merged 1 ELF section Successfully created esp32s3 image. Compiling .pio\build\esp32s3\lib050\SPI\SPI.cpp.o Compiling .pio\build\esp32s3\lib819\Wire\Wire.cpp.o Compiling .pio\build\esp32s3\lib9ee\Adafruit BusIO\Adafruit_BusIO_Register.cpp.o Compiling .pio\build\esp32s3\lib9ee\Adafruit BusIO\Adafruit_I2CDevice.cpp.o src/uart_msg_analy.cpp: In function 'void uart0_msg_analy(uint8_t*, uint16_t)': src/uart_msg_analy.cpp:37:84: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] printf_log_hex("uart0_rx_buf:",(uint8_t *)uart0_rx_buf,uart0_rx_buf_cnt); ^ Compiling .pio\build\esp32s3\lib9ee\Adafruit BusIO\Adafruit_SPIDevice.cpp.o Compiling .pio\build\esp32s3\liba40\Adafruit GFX Library\Adafruit_GFX.cpp.o Compiling .pio\build\esp32s3\liba40\Adafruit GFX Library\Adafruit_GrayOLED.cpp.o Compiling .pio\build\esp32s3\liba40\Adafruit GFX Library\Adafruit_SPITFT.cpp.o Compiling .pio\build\esp32s3\liba40\Adafruit GFX Library\glcdfont.c.o Archiving .pio\build\esp32s3\lib050\libSPI.a src/network_tcp_server.cpp: In member function 'uint16_t Network_TCP_Server::client_process(WiFiClient*&)': src/network_tcp_server.cpp:121:69: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings] printf_log_hex("client rev:", data_char, datalen); // 说明接收到的数据 ^ Compiling .pio\build\esp32s3\libe4a\WiFi\WiFi.cpp.o Archiving .pio\build\esp32s3\lib819\libWire.a Compiling .pio\build\esp32s3\libe4a\WiFi\WiFiAP.cpp.o Compiling .pio\build\esp32s3\libe4a\WiFi\WiFiClient.cpp.o Compiling .pio\build\esp32s3\libe4a\WiFi\WiFiGeneric.cpp.o Compiling .pio\build\esp32s3\libe4a\WiFi\WiFiMulti.cpp.o Compiling .pio\build\esp32s3\libe4a\WiFi\WiFiSTA.cpp.o Compiling .pio\build\esp32s3\libe4a\WiFi\WiFiScan.cpp.o Compiling .pio\build\esp32s3\libe4a\WiFi\WiFiServer.cpp.o Archiving .pio\build\esp32s3\lib9ee\libAdafruit BusIO.a Compiling .pio\build\esp32s3\libe4a\WiFi\WiFiUdp.cpp.o Compiling .pio\build\esp32s3\lib57f\BLE\BLE2902.cpp.o Compiling .pio\build\esp32s3\lib57f\BLE\BLE2904.cpp.o Archiving .pio\build\esp32s3\liba40\libAdafruit GFX Library.a Compiling .pio\build\esp32s3\lib57f\BLE\BLEAddress.cpp.o Compiling .pio\build\esp32s3\lib57f\BLE\BLEAdvertisedDevice.cpp.o Compiling .pio\build\esp32s3\lib57f\BLE\BLEAdvertising.cpp.o Compiling .pio\build\esp32s3\lib57f\BLE\BLEBeacon.cpp.o Compiling .pio\build\esp32s3\lib57f\BLE\BLECharacteristic.cpp.o Compiling .pio\build\esp32s3\lib57f\BLE\BLECharacteristicMap.cpp.o Compiling .pio\build\esp32s3\lib57f\BLE\BLEClient.cpp.o Compiling .pio\build\esp32s3\lib57f\BLE\BLEDescriptor.cpp.o Compiling .pio\build\esp32s3\lib57f\BLE\BLEDescriptorMap.cpp.o Compiling .pio\build\esp32s3\lib57f\BLE\BLEDevice.cpp.o Compiling .pio\build\esp32s3\lib57f\BLE\BLEEddystoneTLM.cpp.o Archiving .pio\build\esp32s3\libe4a\libWiFi.a Compiling .pio\build\esp32s3\lib57f\BLE\BLEEddystoneURL.cpp.o Compiling .pio\build\esp32s3\lib57f\BLE\BLEExceptions.cpp.o Compiling .pio\build\esp32s3\lib57f\BLE\BLEHIDDevice.cpp.o Compiling .pio\build\esp32s3\lib57f\BLE\BLERemoteCharacteristic.cpp.o Compiling .pio\build\esp32s3\lib57f\BLE\BLERemoteDescriptor.cpp.o Compiling .pio\build\esp32s3\lib57f\BLE\BLERemoteService.cpp.o Compiling .pio\build\esp32s3\lib57f\BLE\BLEScan.cpp.o Compiling .pio\build\esp32s3\lib57f\BLE\BLESecurity.cpp.o Compiling .pio\build\esp32s3\lib57f\BLE\BLEServer.cpp.o Compiling .pio\build\esp32s3\lib57f\BLE\BLEService.cpp.o Compiling .pio\build\esp32s3\lib57f\BLE\BLEServiceMap.cpp.o Compiling .pio\build\esp32s3\lib57f\BLE\BLEUUID.cpp.o Compiling .pio\build\esp32s3\lib57f\BLE\BLEUtils.cpp.o Compiling .pio\build\esp32s3\lib57f\BLE\BLEValue.cpp.o Compiling .pio\build\esp32s3\lib57f\BLE\FreeRTOS.cpp.o Compiling .pio\build\esp32s3\lib57f\BLE\GeneralUtils.cpp.o Compiling .pio\build\esp32s3\lib3f1\WiFiClientSecure\WiFiClientSecure.cpp.o Compiling .pio\build\esp32s3\lib3f1\WiFiClientSecure\esp_crt_bundle.c.o Compiling .pio\build\esp32s3\lib3f1\WiFiClientSecure\ssl_client.cpp.o Compiling .pio\build\esp32s3\libd37\HTTPClient\HTTPClient.cpp.o Compiling .pio\build\esp32s3\lib33c\FS\FS.cpp.o Compiling .pio\build\esp32s3\lib33c\FS\vfs_api.cpp.o Compiling .pio\build\esp32s3\lib72e\WebServer\Parsing.cpp.o Compiling .pio\build\esp32s3\lib72e\WebServer\WebServer.cpp.o Compiling .pio\build\esp32s3\lib72e\WebServer\detail\mimetable.cpp.o Compiling .pio\build\esp32s3\FrameworkArduino\Esp.cpp.o Compiling .pio\build\esp32s3\FrameworkArduino\FirmwareMSC.cpp.o Compiling .pio\build\esp32s3\FrameworkArduino\FunctionalInterrupt.cpp.o Compiling .pio\build\esp32s3\FrameworkArduino\HWCDC.cpp.o Archiving .pio\build\esp32s3\lib57f\libBLE.a Compiling .pio\build\esp32s3\FrameworkArduino\HardwareSerial.cpp.o Compiling .pio\build\esp32s3\FrameworkArduino\IPAddress.cpp.o Compiling .pio\build\esp32s3\FrameworkArduino\IPv6Address.cpp.o Compiling .pio\build\esp32s3\FrameworkArduino\MD5Builder.cpp.o Archiving .pio\build\esp32s3\lib3f1\libWiFiClientSecure.a Compiling .pio\build\esp32s3\FrameworkArduino\Print.cpp.o Compiling .pio\build\esp32s3\FrameworkArduino\Stream.cpp.o Archiving .pio\build\esp32s3\lib33c\libFS.a Compiling .pio\build\esp32s3\FrameworkArduino\StreamString.cpp.o Compiling .pio\build\esp32s3\FrameworkArduino\Tone.cpp.o Compiling .pio\build\esp32s3\FrameworkArduino\USB.cpp.o Archiving .pio\build\esp32s3\libd37\libHTTPClient.a Compiling .pio\build\esp32s3\FrameworkArduino\USBCDC.cpp.o Compiling .pio\build\esp32s3\FrameworkArduino\USBMSC.cpp.o Archiving .pio\build\esp32s3\lib72e\libWebServer.a Compiling .pio\build\esp32s3\FrameworkArduino\WMath.cpp.o Compiling .pio\build\esp32s3\FrameworkArduino\WString.cpp.o Compiling .pio\build\esp32s3\FrameworkArduino\base64.cpp.o Compiling .pio\build\esp32s3\FrameworkArduino\cbuf.cpp.o Compiling .pio\build\esp32s3\FrameworkArduino\esp32-hal-adc.c.o Compiling .pio\build\esp32s3\FrameworkArduino\esp32-hal-bt.c.o Compiling .pio\build\esp32s3\FrameworkArduino\esp32-hal-cpu.c.o Compiling .pio\build\esp32s3\FrameworkArduino\esp32-hal-dac.c.o Compiling .pio\build\esp32s3\FrameworkArduino\esp32-hal-gpio.c.o Compiling .pio\build\esp32s3\FrameworkArduino\esp32-hal-i2c-slave.c.o Compiling .pio\build\esp32s3\FrameworkArduino\esp32-hal-i2c.c.o Compiling .pio\build\esp32s3\FrameworkArduino\esp32-hal-ledc.c.o Compiling .pio\build\esp32s3\FrameworkArduino\esp32-hal-matrix.c.o Compiling .pio\build\esp32s3\FrameworkArduino\esp32-hal-misc.c.o Compiling .pio\build\esp32s3\FrameworkArduino\esp32-hal-psram.c.o Compiling .pio\build\esp32s3\FrameworkArduino\esp32-hal-rgb-led.c.o Compiling .pio\build\esp32s3\FrameworkArduino\esp32-hal-rmt.c.o Compiling .pio\build\esp32s3\FrameworkArduino\esp32-hal-sigmadelta.c.o Compiling .pio\build\esp32s3\FrameworkArduino\esp32-hal-spi.c.o Compiling .pio\build\esp32s3\FrameworkArduino\esp32-hal-time.c.o Compiling .pio\build\esp32s3\FrameworkArduino\esp32-hal-timer.c.o Compiling .pio\build\esp32s3\FrameworkArduino\esp32-hal-tinyusb.c.o Compiling .pio\build\esp32s3\FrameworkArduino\esp32-hal-touch.c.o Compiling .pio\build\esp32s3\FrameworkArduino\esp32-hal-uart.c.o Compiling .pio\build\esp32s3\FrameworkArduino\firmware_msc_fat.c.o Compiling .pio\build\esp32s3\FrameworkArduino\libb64\cdecode.c.o Compiling .pio\build\esp32s3\FrameworkArduino\libb64\cencode.c.o Compiling .pio\build\esp32s3\FrameworkArduino\main.cpp.o Compiling .pio\build\esp32s3\FrameworkArduino\stdlib_noniso.c.o Compiling .pio\build\esp32s3\FrameworkArduino\wiring_pulse.c.o Compiling .pio\build\esp32s3\FrameworkArduino\wiring_shift.c.o Archiving .pio\build\esp32s3\libFrameworkArduino.a Linking .pio\build\esp32s3\firmware.elf Retrieving maximum program size .pio\build\esp32s3\firmware.elf Checking size .pio\build\esp32s3\firmware.elf Advanced Memory Usage is available via "PlatformIO Home > Project Inspect" RAM: [== ] 18.3% (used 59980 bytes from 327680 bytes) Flash: [=== ] 27.6% (used 921981 bytes from 3342336 bytes) Building .pio\build\esp32s3\firmware.bin esptool.py v4.5.1 Creating esp32s3 image... Merged 2 ELF sections Successfully created esp32s3 image. 仍然没有成功生成sdkconfig.h
最新发布
11-07
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值