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]='