![C语言的字符数组str[]的定义和用法,第1张 C语言的字符数组str[]的定义和用法,第1张](/aiimages/C%E8%AF%AD%E8%A8%80%E7%9A%84%E5%AD%97%E7%AC%A6%E6%95%B0%E7%BB%84str%5B%5D%E7%9A%84%E5%AE%9A%E4%B9%89%E5%92%8C%E7%94%A8%E6%B3%95.png)
;
以此类推
第二个式子和第一个式子差不多
可以说第2个式子就是
strcpy函数的工作原理
首先将k定为数组下界
然后每次循环自减1
n为制定的循环次数
这个循环是将后一项数组元素赋值给前一项
也就实现了你说的将第m个字符后面的字符顺序向前移动一个位置
别说你没学数组
不知道下界,&str[1+1]);
也就是strcpy(&str[0];
也就是strcpy(&str[1]str[]表示这是个数组
m是一个变量
举个列子你就知道了
当m=0时这个式子等价于strcpy(&str[0],&str[2])?
当m=1时这个式子等价于strcpy(&str[1],&str[0+1])
那你的好好补补基础,&str[1]);
strcpy()函数是干什么的不要多说吧
这是一个判断一串字符中有多少个单词的程序,for(i=0;i<strlen(str);i++)
{
if(str[i]==' ')
s++;
if(str[i]==' '&&str[i+1]!=' ')
w++;
}
这段循环的意思是检测每个字符,如果为空格,则s自加,如果当前为空格,且下一个字符不为空格,则表示下一个是单词的开始,故w自加if(str[0]==' ')
w--;
是用来判断如果第一个字符为空格,按照之前的循环,如果为空格,则会多加一个单词,故这里减一 if(str[strlen(str)-1]==' ')
w--;
在c中,字符串结束是有个标记位的,就是'\0',很明显,它不是空格,所以照循环的条件,这里单词数又加一了,其实后面已经没有单词了,所以用这个判断进行减一,对结果进行修正ps: strlen(str)是测量整个字符串的长度,str[strlen(str)-1]就是该字符串中最后一个字符 如你所说的"HOW ARE U " for 循环后w=4,s=3,之后通过if(str[strlen(str)-1]==' ') w--; 将w变成3 如果是" HOW ARE U " for循环后w=5,s=4,之后通过 if(str[0]==' ') w--; 使w=4
再通过 if(str[strlen(str)-1]==' ') w--; 使w=3
</SPAN></SPAN>
你好!!!
首先我们要知道编译器会把‘\0’看做是字符串的结束标志。
for(a=b=0;str[a]!='\0';a++)
if(str[a]!='c')
str[b++]=str[a];
循环的目的是把字符串a中字符‘c’的字符删掉!!!
str[b]='\0'; 语句的作用是重新为字符数组设置结束标志,要是不设置的话,输出字符串的时候会一直输出字符直到遇见'\0';
代码:
#include <stdioh>
int main(int argc, char argv[])
{
int a,b;
char str[]="hellocwoce";
for(a=b=0;str[a]!='\0';a++)
if(str[a]!='c')
str[b++]=str[a];
str[b]='\0';
printf("%s\n",str);
return 0;
}
结果:
hellowoe
Press any key to continue
strlen
--
计算字符串长度的库函数名。
str
--
通常,程序员喜欢用它作
字符串
变量名。它是
string(英文词
字符串
的缩写)
len
--
通常,程序员喜欢用它作
变量名。它是
length(英文词
长度
的缩写)。
例如:
char
str[20]="I
am
a
student";
int
len;
len
=
strlen(str);
printf("the
string
length
is:
%d",len);
c_str()就是把string类型转为char类型,它是string类型自带的一个类型转换函数。
关于乱码,是由于你的数据没有初始化,并且输出时循环越界引起的,修改为以下即可:
#include <iostream>
#include <stringh>
using namespace std;
int main()
{
string str="Hello World!";
char arr[50]={0};
strcpy(arr,strc_str());//c_str()是把string类型转为char格式!
for(int i=0;i<50;i++)
{
cout<<arr[i];//显示'e' 可以自己改动看看结果
}
return 0;
}
以上就是关于C语言的字符数组str[]的定义和用法全部的内容,包括:C语言的字符数组str[]的定义和用法、C语言问题;下面的程序中 if(str[strlen(str)-1]==' ') w--; 什么意思、C语言 下面的程序如何执行 作用是什么啊,其中str[b]='\0'这句是表示字符串结束吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)