linux數組字元串
㈠ 關於linux C 字元串長度的問題
你原來定義的是char型指針 strlen只能用在字元數組上 兩者有區別的
㈡ linux,shell如何把字元串變成數組
echo $url | cut -d , -f 1
cut是切割命令,-d表示分隔符,這里是逗號,-f表示取第幾個,這里是第一個
注意和數組不一樣,數組是取第0個。
㈢ linux怎麼才能區切字元串然後分別賦值給數組
你好,下面是一個例子。
string="hello,shell,split,test"
array=(${string//,/ })
那個//和/之間是分割的字元。
㈣ 字元串數組:用戶輸入過程中當用戶輸入『.』的時候結束字元數組的輸入
#include <stdio.h>
#include <conio.h>
int main(void)
{
char str[100] = {0};
int i=0;
while(1){
if((str[i]=getche())==':')break;
i++;
}
system("cls");
str[i]=0;
printf("\n%s\n",str);
}
㈤ shell中怎麼將數組轉為字元串
可以使用eval命令。eval命令,如同熟悉的其他腳本語言,會將它的參數做為命令執行。eval命令將會首先掃描命令行進行所有的替換,然後再執行命令。該命令使用於那些一次掃描無法實現其功能的變數。該命令對變數進行兩次掃描。這些需要進行兩次掃描的變數有時候被稱為復雜變數。
命令格式:eval [參數]
補充說明:eval可讀取一連串的參數,然後再依參數本身的特性來執行。參數不限數目,彼此之間用分號分開。
用法示例:
將字元串變數s的值作為命令執行
s="ls"
eval $s
㈥ LINUX中${ name[*]} 表達什麼意思
在linux的shell里,${name}可以表示變數,也可以表示數組。
name後面加〔〕的,一般是數組,
${name[*]}是數組所有元素(all of the elements)
${name[@]}是數組每一個元素(each of the elements)
其實這兩個幾乎一樣,差別主要在於當加上引號時,"${name[*]}"等於所有數組元素及其分隔符(一般是空格)排成的字元串,而"${name[@]}"仍然表示每一個元素。
${#name[*]}是數組元素的個數,也可以寫成${#name[@]}
${name:-Hello} 是指,如果${name}沒有賦值,那麼它等於Hello,如果賦值了,就保持原值,不用管這個Hello了。
至於${name[#*/]},好像沒有這種寫法,可能是你弄錯了。
${name[%%*]}也不存在。不過,如果是${name##*}就有意義了,不過是空值。本來可以給你解釋一下的,但估計說太多就把你弄糊塗了。如果你真的是在看linux的shell的話,可以在網上找advance bash scripting guide,有中文版的。
㈦ linux C 截取字元串放到數組中
在程序當前目錄下建一個txt文件bill.txt,文件內錄入以下內容:
<pay_flowid>CTC4789</pay_flowid>
<>嗨,網路知道<dd>
<he和>hellolinux
運行程序後在當前目錄下生成str.txt文件,可以提取。
程序代碼如下:
#include<stdio.h>
#include<string.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#defineLEN100/*字元數,可以根據需要自己定義*/
intmain(void)
{
intfd;
longlen,i,flag,j;
charnum[LEN],string[LEN];
fd=open("bill.txt",O_RDWR);
len=read(fd,num,LEN);/*readstringforbill.txt*/
num[len]='