我有这个HTML按钮:
<button id="myButton" onClick="lock(); toggleText(this.id);">Lock</button>
Run Code Online (Sandbox Code Playgroud)
这是我的toggleTextJavaScript功能:
function toggleText(button_id)
{
if (document.getElementById('button_id').text == "Lock")
{
document.getElementById('button_id').text = "Unlock";
}
else
{
document.getElementById('button_id').text = "Lock";
}
}
Run Code Online (Sandbox Code Playgroud)
据我所知,button text(<button id="myButton">Lock</button>)就像任何链接文本
(<a href="#">Lock</a>)一样.所以它是一个按钮并不重要.但是,我无法访问按钮文本并进行更改.
我试过('button_id'),(button_id),== "Lock",== 'Lock',但没有任何工程.
如何访问和更改按钮文本(非值)或链接文本?
我用两种不同的方式在C中创建了两个2D数组(矩阵).
我不明白它们在内存中的表示方式之间的区别,以及我不能以相同的方式引用它们的原因:
scanf("%d", &intMatrix1[i][j]); //can't refer as &intMatrix1[(i * lines)+j])
scanf("%d", &intMatrix2[(i * lines)+j]); //can't refer as &intMatrix2[i][j])
Run Code Online (Sandbox Code Playgroud)
这两个数组的实现方式有何不同,为什么我必须以不同的方式引用它们?
如何以相同的方式(??????在我的printMatrix函数中)引用每个数组中的元素?
int main()
{
int **intMatrix1;
int *intMatrix2;
int i, j, lines, columns;
lines = 3;
columns = 2;
/************************* intMatrix1 ****************************/
intMatrix1 = (int **)malloc(lines * sizeof(int *));
for (i = 0; i < lines; ++i)
intMatrix1[i] = (int *)malloc(columns * sizeof(int));
for (i = 0; i < lines; ++i)
{
for (j = 0; j …Run Code Online (Sandbox Code Playgroud) 为什么在Java中使用默认的Objectequals方法并将其修改为更适合特定的类(通过instanceof使用类型转换进行验证):
public boolean equals(Object otherObject)
{
boolean isEqual = false;
if ((otherObject != null) && (otherObject instanceof myClass))
{
myClass classObject = (myClass)otherObject;
if (.....) //checking if equal
{
.....
}
Run Code Online (Sandbox Code Playgroud)
而不是使用equals特定于每个需要使用的类的新方法重载它equals:
public boolean equals(myClass classObject)
Run Code Online (Sandbox Code Playgroud) 我知道这听起来有点主观,但我想在C中实现基本的库函数,以便在C中获得更好的理解(主要是在指针中)并提高我的技能,因为我只是一个初学者(在C和编程中) ).
我发现它很有用,因为你可以更好地了解幕后发生的事情以及这些基本功能的工作原理.
我可以实现哪些基本的C库函数?我在寻找简单的像strcpy,atoi,strstr是不是太复杂(我只是一个初学者),但仍需要一些思考.
这是我知道在C中动态创建矩阵(2D数组)并将用户输入读入其元素的唯一方法:
创建指向指针数组的x指针,其中每个指针代表矩阵中的一条线 - x是矩阵中的线数(其高度).
将此数组中的每个指针指向一个包含y元素的数组,其中y是矩阵中的列数(宽度).
int main()
{
int i, j, lines, columns, **intMatrix;
printf("Type the matrix lines:\t");
scanf("%d", &lines);
printf("Type the matrix columns:\t");
scanf("%d", &columns);
intMatrix = (int **)malloc(lines * sizeof(int *));
//pointer to an array of [lines] pointers
for (i = 0; i < lines; ++i)
intMatrix[i] = (int *)malloc(columns * sizeof(int));
//pointer to a single array with [columns] integers
for (i = 0; i < lines; ++i)
{
for (j …Run Code Online (Sandbox Code Playgroud) 我有一个指向char数组的指针.我想增加它,直到它不指向数字/数字(在char数组中表示为char).
例如,如果pointer指向'2'此char数组:
['1'][' ']['2']['3']['4'][' '][' '][' ']['5']['6']['7']
^
*pointer
Run Code Online (Sandbox Code Playgroud)
我想增加它,直到它指向第一个非数字字符 - ' ':
['1'][' ']['2']['3']['4'][' '][' '][' ']['5']['6']['7']
^
*pointer
Run Code Online (Sandbox Code Playgroud)
我知道我可以这样做:
while (*pointer == '0' || *pointer == '1' || *pointer == '2' || ...)
pointer++;
return pointer;
Run Code Online (Sandbox Code Playgroud)
但它很长很不优雅.
我以为我可以使用atoi(),0当指针没有指向数字时返回:
while (atoi(pointer) != 0 || *pointer == '0') //while it still points at a number
pointer++; //increase the pointer until it will not point at a number
return pointer;
Run Code Online (Sandbox Code Playgroud)
但它似乎没有用.也许没关系,我在其他地方有错,但无论如何我想知道:
是否还有其他(更好的)方法来检查指向char数组的指针是否指向一个数字/数字并增加它直到它指向一个非数字字符,在C?
为什么这个strncpy()实现在第二次运行时崩溃,而第一次运行正常?
函数strncpy
从字符串复制
n字符将源的第一个字符复制到目标.如果在n复制字符之前找到源C字符串的末尾(由空字符表示),则使用零填充目标,直到n已向其写入总计字符.如果source长于
n(因此,在这种情况下,destination可能不是空终止的C字符串),则在目标的末尾不会隐式附加空字符.
char *strncpy(char *src, char *destStr, int n)
{
char *save = destStr; //backing up the pointer to the first destStr char
char *strToCopy = src; //keeps [src] unmodified
while (n > 0)
{
//if [n] > [strToCopy] length (reaches [strToCopy] end),
//adds n null-teminations to [destStr]
if (strToCopy = '\0')
for (; n > 0 ; ++destStr)
*destStr = '\0';
*destStr = *strToCopy;
strToCopy++;
destStr++;
n--;
//stops copying …Run Code Online (Sandbox Code Playgroud) c ×5
matrix ×2
arrays ×1
button ×1
char ×1
equals ×1
html ×1
java ×1
javascript ×1
libc ×1
overloading ×1
overriding ×1
strncpy ×1