字符串数组C++的帮助
Help with String Arrays C++
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char firstname[] = "Alfred";
char middlename [] = "E";
char lastname[] = "Neuman";
char fullname [80];
int offset=0;
strcpy(fullname,firstname);
offset = strlen(firstname);
strcpy(fullname+offset," ");
offset +=1;
strcpy(fullname+offset,middlename);
offset += strlen(middlename);
strcpy(fullname+offset," . ");
offset +=2;
strcpy(fullname+offset,lastame);
cout << firstname << "." << middlename << "." << lastname << endl;
cout << "Fullname:" << fullname << endl;
return 0;
}
当我们处理文本时,为什么需要偏移量,为什么偏移量加1和2。我似乎无法掌握琴弦和数组,有人介意帮忙吗?
这是因为您使用了错误的工具。
std::string firstname = "Alfred";
std::string middlename = "E";
std::string lastname = "Numan";
std::string fullname = firstname + " " + middlename + " . " + lastname;
偏移量用于跟踪字符串在数组中的当前位置,以便您可以将新参数strcpy
放到正确的位置。
将分隔符(空格(的长度添加到偏移量中,以便在正确的位置写入名称的下一部分。
"offset"用于将复制操作的起点移动到数组中最后一个字符后一个字符的点。随着更多的字符被复制到全名中,偏移量会增加,指向全名数组中剩余未使用空间的第一个字符。
strcpy(fullname,firstname);
将名字复制到全名缓冲区中。
offset = strlen(firstname);
将偏移量设置为等于名字的长度,这样您就知道从哪里开始将下一个东西复制到全名缓冲区,在本例中是一个空格字符。
offset +=1;
移动经过该字符的偏移量,以便从该点开始复制到全名缓冲区。
strcpy(fullname+offset,middlename);
将中间名复制到全名缓冲区中。
offset += strlen(middlename);
再次将中间名的长度添加到偏移量中,以便紧接着开始下一次复制操作。
strcpy(fullname+offset," . ");
在"."中复制用于中间首字母。
offset +=2;
将你的偏移量增加到刚好通过的点。
strcpy(fullname+offset,lastame);
以姓氏复制。
理解这两个语句,然后进行纸笔练习。
- 数组索引从0开始
- CCD_ 2是在CCD_ 4序列中的CCD_ 3位置处的索引。因此,
arr+3
是序列中的位置4。(由于数组索引从0开始。(
相关文章:
- 需要帮助设置在C++中使用的Potrace
- 在指针的帮助下,文本文件中单词的频率
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 如何在Qbutton的帮助下更改Q对话框的宽度
- 需要帮助将结构数组传递给函数
- C++需要帮助从用户那里获得一个整数,并确保它在另外两个整数之间
- 需要帮助在 c++ 中将字符串转换为字符 ----错误 "const char *" 类型的值不能用于初始化 "char" 类型的实体
- 有人可以帮助我处理正则表达式吗?
- C++调用具有 *this 属性的单个帮助程序函数
- C++:需要帮助了解运算符重载错误
- 需要以下代码的帮助,下面的代码有什么问题
- CS1 项目帮助C++
- 用于检查值是否为其任何参数的帮助程序函数
- 需要有关此 if 语句的帮助
- 类型限定宏帮助程序
- CoreCLR 中的检测探查器 - 将帮助程序程序集加载到 dotnet 进程的方法
- NS3 插槽混淆(需要帮助理解)
- 设计帮助 - 为不同类型的消息处理通用接口的设计模式
- 需要帮助查找内存泄漏
- 有人可以帮助我理解这些参数/参数吗?