这里是将s2与s1进行比较的代码,如果它们相同则返回0和其他一些选项,但是虽然循环不能终止并且我找不到它的问题,但我知道如果我将char*s2转换为const char*s2它会正常工作.
#include <iostream>
using namespace std;
int cmp(char*,char*);
int main()
{
char* s1;
cout << "Please Enter First Word: "; cin >> s1;
char* s2;
cout << "Please Enter Second Word: "; cin >> s2;
cout << "The Result is: " << cmp(s1,s2) << endl;
return 0;
}
int cmp(char* s1, char* s2)
{
int i=0;
while (*(s2+i)!=0)
{
if (*(s2+i)>*(s1+i)) return 1;
if (*(s2+i)<*(s1+i)) return -1;
i++;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud) 这是一个字符串: -A -P -O
现在我们有相同的但是在另一个顺序: -P -A -O
检测这两个字符串是否相同的最佳方法是什么?
我有一个功课,它是:
写下面的函数代码,这个函数应该计算s里面的字节数,直到它不是'\ 0'.
功能:
Run Code Online (Sandbox Code Playgroud)unsigned len(const char* s);
真的我不知道这个功课是什么意思,有人可以写这个功课的代码吗?还有更多人可以解释一下"Const char*s"是什么意思吗?如果你能用一些例子来解释那将是完美的.
这是我正在尝试做的代码:
unsigned len(const char* s)
{
int count=0;; int i=0;
while (*(s+i)!=0)
{
count++;
i++;
}
return count;
}
Run Code Online (Sandbox Code Playgroud)
但是在主要功能中我不知道应该写什么,顺便说一句,我写的是:
const char k='m';
const char* s=&k;
cout << len(s) << endl;
Run Code Online (Sandbox Code Playgroud)
结果总是4!我真的不知道该怎么办这个问题,如果我只能在const char中存储一个字符,那么结果总是一样的.这个问题究竟在寻找什么?
我正在使用下面的代码在我的字符串中添加一些"0"字符,但似乎存在问题并且程序将崩溃.一切似乎都是逻辑但我不知道问题出在哪里?
#include <stdlib.h>
#include <string.h>
int main()
{
char *Ten; int i=0; Ten = malloc(12);
Ten="1";
for (i=0;i<10;i++)
strcat(Ten,"0");
printf("%s",Ten);
return 0;
}
Run Code Online (Sandbox Code Playgroud)