当前位置:首页 » 操作系统 » linux数组字符串

linux数组字符串

发布时间: 2022-05-07 17:53:09

㈠ 关于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]='';

close(fd);

for(i=0,j=0;i<len;i++)

{

switch(num[i])

{

case'<':

{

flag=1;

break;

}

case'>':

{

flag=2;

break;

}

default:

{

if(flag==2)

{

string[j]=num[i];

j++;

}

}

}

}

string[j]='';

fd=open("str.txt",O_RDWR|O_CREAT,S_IRUSR|S_IWUSR);

if(fd)

{

write(fd,string,j);

close(fd);

}

return0;

}

㈧ 怎么读出指定文件夹下的所有文件名并返回字符串数组

1、在linux平台,可采用目录操作函数,读取当前目录下的文件
#include <sys/types.h>
#include <dirent.h> //windows开发工具没有这个头文件
#include <unistd.h>
#include <string.h>
main()
{
DIR * dir;
struct dirent * ptr;
char file_list[100][40];
int i=0;
dir = opendir("/etc/rc.d"); //打开一个目录
while((ptr = readdir(dir)) != NULL) //循环读取目录数据
{
printf("d_name : %s\n", ptr->d_name); //输出文件名
strcpy(file_list[i],ptr->d_name ); //存储到数组
if ( ++i>=100 ) break;
}
closedir(dir);//关闭目录指针
}
2、在windows平台下,如VC也有类似的操作函数,如:
#include <string>
#include <iostream>
using namespace std;
#include <WINDOWS.H>
void main()
{
string szPath="d:/*.*";
WIN32_FIND_DATA wfd;
HANDLE hFind;
char file_list[100][40];
int i=0;

hFind = FindFirstFile(szPath.c_str(), &wfd) ;
do
{
cout << wfd.cFileName << endl ;
strcpy(file_list[i],wfd.cFileName ); //存储到数组
if ( ++i>=100 ) break;
}while (FindNextFile(hFind, &wfd));

FindClose(hFind);
}

㈨ linux中如何在一个数组中的各个字符串后面统一添加一个字母

shell脚本的一个例子,大概的意思应该不差:

#!/bin/sh

echo /dev/sdb > $$.tmp
echo /dev/sdc >> $$.tmp

aa=`cat $$.tmp`

rm -rf $$.tmp2

for a in $aa
do
b="$a"1
echo $b >> $$.tmp2
done

bb=`cat $$.tmp2`
echo $bb

㈩ linux里A=“1 2 3”,$A是个数组吗!还是一个字符串!

楼主说的应该是shell中的,$A是字符串。
字符串转数组

str="12 34 56"

arr=($str)

count=${#arr[@]}

for (( i=0;i<count;i=i+1))

do

echo "$i=arr[$i]"

done
http://doudouclever.blog.163.com/blog/static/17511231020127288621354/

热点内容
android怎么改 发布:2024-10-07 22:24:13 浏览:863
我的世界ec服务器消失了 发布:2024-10-07 21:48:30 浏览:661
pythonziptodict 发布:2024-10-07 21:36:09 浏览:790
linux操作系统教程 发布:2024-10-07 21:16:54 浏览:280
摩托音响怎么配置 发布:2024-10-07 21:12:37 浏览:348
本田思域哪个配置好 发布:2024-10-07 21:04:11 浏览:347
算法期末试卷 发布:2024-10-07 20:51:04 浏览:808
编译期错误提示 发布:2024-10-07 20:07:23 浏览:297
阿里云服务器打开慢 发布:2024-10-07 20:06:33 浏览:578
磁存储行业的前景 发布:2024-10-07 20:01:29 浏览:550