65,186
社区成员




#include <iostream>
#include <string>
using namespace std;
void del_sp(char *src); // 删除C风格字符串中的空格
void del_sp(string &str); // 重载del_sp,调用C风格的函数
int main()
{
char hl[] = "删 除 空 格Hello world! Hello world! 88 ";
cout << hl << endl;
del_sp(hl);
cout << hl << endl;
string str("删 除 空 格Hello world! Hello world! 88 ");
cout << str << "\n长度" << str.size() << endl;
del_sp(str); //调用重载的 del_sp
cout << str << "\n长度" << str.size() << endl;
return 0;
}
void del_sp(char *src) // 删除C风格字符串中的空格
{
char * fp = src;
while (*src) {
if (*src != ' ') { // 如果不是空格就复制
*fp = *src;
fp++;
}
src++;
}
*fp = '\0' ; //封闭字符串
}
void del_sp(string &str) // 删除string字符串中的空格
{
// 因为str.c_str() 是const的,不能直接修改,
// 所以要复制一个临时的,然后修改后换回去
char tmp[str.size()+1];
memcpy(&tmp, str.c_str(), str.size() + 1);
del_sp(tmp); // 重载del_sp,调用C风格的函数
str = tmp;
}
#include <iostream> // 数据流输入/输出
#include <cstdio> // 定义输入/输出函数
#include <cctype> // 字符处理
#include <cstring>
using namespace std;
// 把 16进制字符串转换成 HEX,写到unsigned char数组里
// 原来 "1234567890ABCDEF" 12个字节,现在用6个字节保存 0x1234567890ABCDEF
void str2hex(unsigned char *char_hex , const char *str)
{
int str_size = strlen(str);
int num[str_size];
for (int i = 0; i != str_size; i++) {
if ((str[i] >= '0') && (str[i] <= '9'))
num[i] = str[i] - 48; // 字符0的ASCII值为48 , 也可以 str[i] - '0'
else if ((str[i] >= 'a') && (str[i] <= 'f'))
num[i] = str[i] - 'a' + 10; // 16进制16
else if ((str[i] >= 'A') && (str[i] <= 'F'))
num[i] = str[i] - 'A' + 10;
else
num[i] = 0;
// cout << num[i] << endl; // 测试转换是否成功
}
int hex_size = strlen(str) / 2;
for (int i = 0; i != hex_size; i++) {
char_hex[i] = (num[2*i] << 4) + (num[2*i+1]); // 把 0xF0 和 0x0F 合并成 0XFF
}
}
int main()
{
char str[] = "1234567890ABCDEF";
unsigned char char_hex[strlen(str)/2+1];
str2hex(char_hex, str);
for (int i = 0; i != 8; i++) {
printf("%X ", char_hex[i]);
}
return 0;
}
void del_sp(string &str) // 删除string字符串中的空格
{
// 因为str.c_str() 是const的,不能直接修改,
// 所以要复制一个临时的,然后修改后换回去
char *tmp=new char[str.size()+1];
memcpy(tmp, str.c_str(), str.size() + 1);
del_sp(tmp); // 重载del_sp,调用C风格的函数
str = tmp;
}
void del_sp(char *src) // 删除C风格字符串中的空格
{
char * fp = src;
while (*src) {
if (*src != ' ') { // 如果不是空格就复制
*fp = *src;
fp++;
}
src++;
}
*fp = '\0' ; //封闭字符串
}