1. c语言修改、删除文件中的字符串
字符串其实是一个数组。你把后面的abcd依次移到****位置上。然后让字符串结束就好了。
符串或串(string)是由零个或多个字符组成的有限序列。一般记为
s='a1a2???an'(n>=0)。它是编程语言中表示文本的数据类型。
通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
[编辑本段]字符串函数
1.
连接运算
concat(s1,s2,s3…sn)
相当于s1+s2+s3+…+sn.
例:concat(‘11’,'aa’)='11aa’;
2.
求子串。
(s,i,l)
从字符串s中截取第i个字符开始后的长度为l的子串。
例:(‘abdag’,2,3)=’bda’
3.
删除子串。过程
delete(s,i,l)
从字符串s中删除第i个字符开始后的长度为l的子串。
例:s:=’abcde’;delete(s,2,3);结果s:=’ae’
4.
插入子串。
过程insert(s1,s2,i)
把s1插入到s2的第i个位置
例:s:=abc;insert(‘12’,s,2);结果s:=’a12bc’
5.
求字符串长度
length(s)
例:length(‘12abc’)=5
在asp中
求字符串长度用
len(s)例:
len("abc12")=5
6.
搜索子串的位置
pos(s1,s2)
如果s1是s2的子串
,则返回s1的第一个字符在s2中的位置,若不是子串,则返回0.
例:pos(‘ab’,’12abcd’)=3
7.
字符的大写转换。upcase(ch)
求字符ch的大写体。
例:upcase(‘a’)=’a’
8.
数值转换为数串。
过程
str(x,s)
把数值x化为数串s.
例:str(12345,s);
结果s=’12345’
9.
数串转换为数值。
过程val(s,x,i)
把数串s转化为数值x,如果成功则i=0,不成功则i为无效字符的序数
例:val(‘1234’,x,i);结果
x:=1234
2. C语言中如何替换一个字符串中的字符
include
<stirng.h>
void
strrpl(char
*s,
const
char
*s1,
const
char
*s2)
{
char
*ptr;
while
(ptr
=
strstr(s,
s1))
/*
如果在s中找到s1
*/
{
memmove(ptr
+
strlen(s2)
,
ptr
+
strlen(s1),
strlen(ptr)
-
strlen(s1)
+
1);
memcpy(ptr,
&s2[0],
strlen(s2));
}
return
s;
}
int
main()
{
char
*str1="abc",
*str2="a",
*str3="de",
Str0[100];
//如果字符串很长,100不够则需要预留更大的空间。
strcpy(Str0,Str1);
strrpl(Str0,
str2,
str3);
printf("%s\n",
Str0);
return
0;
}
3. C语言怎么改变系统中字符的输入(不是简单的在程序里输入)
可以按照如下步骤:
1 读入字符串,可以使用scanf以%s的方式读入字符串,也可以以gets一次读入整行字符串。
2 判断字符串。使用strcmp函数,与设定的字符串相比较。如输入字符串存在字符数组cmd中,当输入"test"的时候执行程序,那么当strcmp(str, "test")返回值为0时,代表需要执行对应程序。
3 执行程序。
如果要执行的是某一个函数,那么直接在2步中判断成功时调用对应函数即可。
如果要执行的是另外一个可执行文件,可以通过
system(exec_file_name);
的方式,执行可执行文件。其中exec_file_name是存储要执行的可执行文件名及路径的字符串。
4. C语言如何更改字符串的内容
是的。如果是修改字符串中全部内容,可以使用strcpy
但是,如果是局部修改,部分修改的话,或者是修改字符串中某个指定的字符等等,得自己定义一个函数实现。
5. c语言:如何将字符串中指定的字符替换为另一个指定字符
void
rep(char
*s,char
*s1,char
*s2)
{
char
*p;
for(;*s;s++)
/*顺序访问字符串s中的每个字符*/
{
for(p=s1;*p&&*p!=*s;p++);/*检查当前字符是否在字符串s1中出现*/
if(*p)
*s=*(p-s1+s2);
/*当前字符在字符串s1中出现,用字符串s2中的对应字符代替s中的字符*/
}
}
不知道对于不对,你自己去试下,对了请采纳,不对请往下浏览
6. C语言中结构体的中的字符串的内容如何修改
两步。
1、#include<string.h>
2、strcpy(p->name,(p+1)->name);
也可整体赋值:
*p=*(p+1);
7. 怎样在C语言中修改字符串的一个字符的值
根据字符串存储的变量的不同,方法不同,参考代码:
存储在char数组中(支持C/C++)
char
str[]="hello"
;
int
i;
for(
i=0;str[i];i++
)
printf("%c\n",
str[i]
);
//以数组方式引用一个字符:str[i]
for(
i=0;*(str+i);i++
)
printf("%c\n",
*(str+i)
);
//以指针方式引用一个字符:*(str+i)
存储在string中(仅支持C++)
string
str="abcde";
for(string::iterator
iter
=
s.begin();
iter!=s.end();
iter++)
//使用迭代器
{
cout<<*iter<<endl;
}
cout<<endl;
for(
int
i=0;i<s.length();i++
)
{
cout<<s[i]<<endl;
//使用数组方式调用,得到单个元素
}
8. c语言中怎么读取文件中的字符并更改
运算符优先级的问题:
while((c=fgetc(p)!=eof))
被解释成:
while(c=(fgetc(p)!=eof)),
c被赋值为(fgetc(p)!=eof)这个逻辑值了,所以不管文本里的内容是什么,都会在文件指针未指向文件结尾时打印ascii码为1的字符(因为fgetc(p)!=eof为真),也就是那个笑脸,到文件结尾时fgetc(p)!=eof为假
c
=
0才退出循环。改动很简单,加个括号防止fgetc(p)先和!=eof结合就行了:while((c=fgetc(p))!=eof)
9. c语言怎样改写文件中间的字符
C语言的写文件操作是覆盖模式,而不是插入模式。即写入字符时,会覆盖原本位置的字符,除非写到文件结尾后继续写,否则不会改变原本文件的大小。
所以要改写文件中间的字符,直接向文件写入数据即可。
1 打开文件,使用fopen函数。打开时,文件模式需要支持写操作。
2 对文件通过fseek操作,将文件指针定位到需要写入的位置。
3 通过fwrite, fprintf, fputs, fputc等函数,向文件写入新的数据。
4 关闭文件。