求助:字符串的插入和移除操作
请问如何将一个字符插入到字符串的最后,并且去掉字符串最后一个字符
[解决办法]
首先被插入的字符串得是可以修改的.下面代码,参考一下.
#include <stdio.h>
#include <string.h>
int main(void)
{
char strSrc[128] = "String A";
const char *strB = "String B";
char chE = 'E', chX = 'X';
/* 连接字符到一个字符串 */
printf("Before Appending: %s\n", strSrc);
strcat(strSrc, strB);
printf("After Appending: %s\n", strSrc);
/* 替换插入字符到末尾 */
strSrc[strlen(strSrc)-1] = chE; /* 替换最后一个字符 */
printf("%s\n", strSrc);
/* 插入字符到末尾 */
strSrc[strlen(strSrc)] = chX;
strSrc[strlen(strSrc)] = '\0';
printf("%s\n", strSrc);
return 0;
}
[解决办法]
没看楼上的代码,我觉得用指针的话,把指针指向字符串的最后一个字符,,把要代替的字符赋给指针就可以了
[解决办法]
string1[strlen(string1)-1] = char1
[解决办法]
就是这么简单
[解决办法]
3楼:string1[strlen(string1)-1] = char1;//解决了你第一个问题
string2[strlen(string2)-1] = '\0';//第二个问题
[解决办法]
#include <stdio.h>
#include <string.h>
int main()
{
char s[100]="hello",c='K';
int n=strlen(s);
s[n]=c;
s[n+1]=0;
puts(s);
s[n-1]=s[n];
s[n]=0;
puts(s);
}
[解决办法]
(string1[strlen(string1)-1] = char1;)你那是替换吧,不是插入,
[解决办法]
楼主第二个问题就是把最后一个字符移除,至于是不是第一个问题加的字符,我就不知道了,我只看到了题,没管代码。
[解决办法]
在字符串末尾插入字符:
在字符串最后加上这个字符,再补上字符串结束符或者修改字符串长度记录。
如果该字符串放置的内存空间已满,则需要申请一个更大的内存空间,将该字符串复制过去再进行上述操作。如果未满,可以直接进行上述操作。
使用C++标准库可以使用std::string,使用MFC可以使用CString,但原理都是这样。
在字符串末尾删除字符:
直接将要删除的字符替换为字符串结束符,或修改字符串长度记录即可。
[解决办法]
说老实话没怎么明白LZ想干什么。
假设字符串"abcdef",向字符串最后加一个字符'g',字符串变成"abcdefg",然后将新字符串的最后一字符移除,不就又变成"abcdef"了么?
不管怎样,基于这样需求的代码:
char s[BUFSIZ] = "abcdef"; // 自己保证空间够用
int length = strlen(s);
s[length] = 'g';
s[length + 1] = '\0'; // 加上字符'g'
length = strlen(s) // 重新计算长度
s[length - 1] = '\0'; // 将最后一个字符删掉