日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

c拆分字符串,并按照指定格式存入结构体数组

發布時間:2025/10/17 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c拆分字符串,并按照指定格式存入结构体数组 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

c將字符串拆分,并按照指定格式存入結構體數組

  • 函數功能
  • 代碼實現
  • 結果顯示

函數功能

字符串格式:username1,password1;username2,password2;
結構體格式:

typedef struct{char acUserName[120];char acPassword[120]; }NODE_S;

最終將`username1、password1、username2、password2存入到結構體數組NODE_S[2]中

代碼實現

#include <stdio.h> #include <stdlib.h> #include <string.h>typedef struct{char acUserName[120];char acPassword[120]; }NODE_S;int String_parseDataFromClient(char *p,int iLen, NODE_S *pstPos) {int i = 0;char *p1 = NULL;char *p2 = NULL;p1 = p;int iPos = 0;for(i = 0; i < iLen; i++){if(p[i] == ','){memcpy(pstPos[iPos].acUserName, p1, &p[i] - p1); p1 = &p[i + 1];}if(p[i] == ';'){memcpy(pstPos[iPos].acPassword, p1, &p[i] - p1);p1 = &p[i +1];iPos++;}}return 0; }int main() {int i = 0;char *p = "username1,password1;username2,password2;";int iNodeNum =0; //用于統計結構體數組的個數,等于分號的個數int iLen = 0;NODE_S *pstPos = NULL; /* 求字符串的長*/iLen = strlen(p);/* 遍歷字符串查看有幾個分號,需要申請多少內存*/for(i = 0; i < iLen; i++){if(p[i] == ';'){iNodeNum++;}}/* 申請內存*/pstPos = calloc(iNodeNum, sizeof(*pstPos));if(NULL == pstPos){printf("calloc error!\n");return 0;}String_parseDataFromClient(p, iLen, pstPos);for(i = 0; i < iNodeNum; i++){printf("pstPos[%d]=%s pstPos[%d]=%s\n", i, pstPos[i].acUserName, i, pstPos[i].acPassword);}free(pstPos); return 0; }

結果顯示

[root@localhost svn]# ./test2 pstPos[0]=username1 pstPos[0]=password1 pstPos[1]=username2 pstPos[1]=password2

總結

以上是生活随笔為你收集整理的c拆分字符串,并按照指定格式存入结构体数组的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。