c語言字元串轉數組
A. c語言有沒有把字元串拆分為數組的函數
直接用簡單的C++
#include<iostream>
#include<string>
#include<vector>
usingnamespacestd;
//把字元串s按照字元串c進行切分得到vector_v
vector<string>split(conststring&s,conststring&c){
vector<string>v;
intpos1=0,pos2;
while((pos2=s.find(c,pos1))!=-1){
v.push_back(s.substr(pos1,pos2-pos1));
pos1=pos2+c.size();
}
if(pos1!=s.length())
v.push_back(s.substr(pos1));
returnv;
}
intmain()
{
stringinput="張三$|男$|濟南$|大專學歷$|";
vector<string>myArray=split(input,"$|");
for(inti=0;i<myArray.size();i++){
cout<<myArray[i]<<endl;
}
}
/*
張三
男
濟南
大專學歷
*/
B. c語言中 字元串賦值給數組的三種表達方式是什麼
在C語言中,字元串賦值給數組有三種常見的表達方式。第一種方法是在定義數組時直接進行初始化,例如:
char str[200] = "abcd"; // 或者 char str[200] = {"abcd"}; 這里可以去掉大括弧
第二種方法是對數組的各個元素進行單獨賦值,這種方式如下:
char str[200]; str[0] = 'a'; str[1] = 'b'; str[2] = 'c'; str[3] = 'd';
需要注意的是,這種方式不會自動在字元串結尾加上空字元'\0',因此需要手動添加。例如:
char str[200]; str[200] = {'a','b','c','d'}; /* 編譯系統不會自動加上'\0',因此不能使用str[200] = "abcd"的方式來對字元數組進行整體賦值 */
第三種方法是使用指針,這包括:
char *str = "abcd"; 或者 char *str; str = "abcd";
在使用指針時,這兩種方式都是可行的,而且你可以使用下標的方式引用字元串中的各個字元。需要注意的是,使用指針的方法,字元串是在常量區的,對指針進行重新賦值不會改變字元串內容,但可以指向其他字元串。
以上三種方法是C語言中常見的字元串賦值給數組的方式。每種方法都有其適用場景和限制,請根據實際情況選擇合適的方法。
另外,在實際編程中,定義數組時進行初始化是最直接和安全的方法。單獨賦值的方式則需要手動處理字元串的結束符,使用指針的方式則需要注意字元串的常量性質,避免對指針進行錯誤的重新賦值。
總之,在C語言中處理字元串時,理解這些方法及其特點是非常重要的。